Laden...

Table Adapter

Erstellt von Kuehner vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.163 Views
K
Kuehner Themenstarter:in
489 Beiträge seit 2006
vor 17 Jahren
Table Adapter

Hallo,

Ich möchte einen TableAdapter erstellen, mit welchem man dynamisch die Tabellen aussuchen kann.

Das SQL Statement sollte ungefähr so aussehen:


SELECT * FROM @Tabelle AS Tabelle WHERE Tabelle.Name = @Name

Allerdings bekomme ich eine Fehlermeldung zurück, wenn ich die Variable @Tabelle benutze.

Gibt es irgendeine Möglichkeit, die Tabelle mittels Variablen auszusuchen?

Danke für jede Hilfe!!

D
496 Beiträge seit 2005
vor 17 Jahren

übergib doch einfach einen string als tabellennamen

ungefähr so:

@"SELECT * FROM " + meinTabellenname + " WHERE .... ";

"Programming is similar to sex. If you make a mistake, you have to support it for the rest of your life."

K
Kuehner Themenstarter:in
489 Beiträge seit 2006
vor 17 Jahren

Hallo,

Wohin übergeben? Der SQL Query befindet sich innerhalb eines DataAdapters. Das Statement in diesem Data Adapter tu ich schon vor dem Compile festlegen.

@Tabelle sollte eigentlich ein String sein, den der TableAdaptor automatisch einfügen sollte.

225 Beiträge seit 2006
vor 17 Jahren

Also ich selber arbeite mit Ole.

Wenn Du einen OleDataAdapter hast kannst Du den command Text setzen.


cmd.CommandText = "SELECT * FROM " + tableName;
dataAdapter.SelectCommand = cmd;
dataTable = new DataTable();
dataAdapter.Fill(dataTable);

Hab jetzt net überprüft obs bei "normalen" DataAdapter auch so geht. Aber wenn net steig einfach auf Ole um 😉.

Yunky: was fürn operator muss ich den nehmen wenn ich sagen will nichtgrößergleich??
Yunky: !>3??
Yunky: !≥ ??
Puppetmaster: G
Yunky: aja ka
Puppetmaster: kleiner (<)
Yunky: stimmt^^

K
Kuehner Themenstarter:in
489 Beiträge seit 2006
vor 17 Jahren

Danke für den Tip, ich wollte es jedoch nicht auf C# Ebene machen, sondern ich möchte dem TableAdapter (oder der Datenbasis auf irgendeine Art und Weise) einen Parameter übergeben. Die Datenbasis schau dan selbst, wie sie den Parameter einsetzt.

K
Kuehner Themenstarter:in
489 Beiträge seit 2006
vor 17 Jahren

Ich habe jetzt folgende StoredProcedure erstellt:


CREATE PROCEDURE dbo.GetConfiguration
	(
		@type varchar(MAX)
	)
AS
	IF @type = 'Tanque' SELECT * FROM Tanque();

Diese gibt dann eine Tabelle zurück. Doch wie kann ich diese im Code benutzen?


CREATE FUNCTION dbo.Configuration 
	(
	@type varchar(max)
	)
RETURNS TABLE
AS
	RETURN SELECT * FROM GetConfiguration '@type'


... funktioniert natürlich nicht 😦

K
Kuehner Themenstarter:in
489 Beiträge seit 2006
vor 17 Jahren

Hallo Puppetmaster,

Kannst du bitte mal den ganzen Code posten? Danke!