Laden...

Filterung der Daten von Abfragen

Erstellt von Pako vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.985 Views
P
Pako Themenstarter:in
78 Beiträge seit 2006
vor 17 Jahren
Filterung der Daten von Abfragen

Hallo,

ich muss eine Datenbankanwendung schreiben bei der die Abfragen nicht durch meine Anwendung geschehen sondern in der Datenbank enthalten sind.

Erstellt habe ich nun eine Abfragen (Access).
Angenommen ich möchte die Daten nach einer Abfrage noch nach WHERE xxx.Name='Test' sortieren dann wäre Test in ja eine Variable.

Geht das, dass ich dann WHERE xxx.Name='VAR' in die Datenbank schreibe und die Variable übergebe wenn ich die Abfrage ausführe?

Falls ja, wie?
Wenn nicht dann wäre das ja sinnlos wenn ich mir alle Daten der Abfrage in ein Dataset speichere und danach nochmals Filtern muss.

Über eine gute Seite wäre ich Dankbar.

Danke
Grüße
Patrick

P
Pako Themenstarter:in
78 Beiträge seit 2006
vor 17 Jahren

mir fällt gerade ein das ich die Variable selbst vor der Abfrage in die Datenbank schreiben könnte und dann als Variable dieses Feld angebe.

Falls es eine elegantere Lösung gibt bitte nennen 😉

476 Beiträge seit 2004
vor 17 Jahren

hallo Pako,

leider habe ich Verständnisschwierigkeiten bei deiner Problemschilderung.

Du sollst eine Datenbankanwendung schreiben bei der die Datenbank abfragen nicht durch deine Anwendung erfolgen sollen? Oder meinst du, dass in der Datenbank Abfragen abegelegt sind, die du einer anderen Anwendung zur Verfügung stellen willst?

Kannst du vielleicht ein Beispiel zum Verständnis posten?

-yellow

Selbst ein Weg von tausend Meilen beginnt mit einem Schritt (chinesisches Sprichwort).

Mein Blog: Yellow's Blog auf sqlgut.de

P
Pako Themenstarter:in
78 Beiträge seit 2006
vor 17 Jahren

die Datenbank Abfragen sollen in der Datenbank zur Verfügung stehen.
Ich soll in meiner Anwendung keinerlei SQL Commandos abschicken.

476 Beiträge seit 2004
vor 17 Jahren

hallo pako,

wie willst du dann an die SQL-Abfragen kommen? Ohne SQL wirst du da schwer drankommen!

Kann es sein dass du gespeicherte Prozeduren verwenden sollst, die du dann aus dem .NET Code parametrisiert aufrufst?

-yellow

Selbst ein Weg von tausend Meilen beginnt mit einem Schritt (chinesisches Sprichwort).

Mein Blog: Yellow's Blog auf sqlgut.de

P
Pako Themenstarter:in
78 Beiträge seit 2006
vor 17 Jahren

ja genau das ist mein problem. wie kann ich parametrisiert aufrufen?

Wenn ich eine SQL Abfrage in der Datenbank speichere und diese Aufrufe dann bekomme ich die Ergebnistabelle der Abfrage übergeben. Das ist allerdings Unsinn wenn ich von den Daten der Abfrage nur die hälfte möchte. Den Parameter welche hälfte der der Daten ich möchte müsste ich dann irgendwie übergeben wenn ich auf die Abfrage zugreife.

grüße

S
8.746 Beiträge seit 2005
vor 17 Jahren

Was ist denn jetzt die Frage?

Wie man Stored Procedures aufruft? Wie man ihnen Parameter übergibt?

P
Pako Themenstarter:in
78 Beiträge seit 2006
vor 17 Jahren

genau!

OleDbDataAdapter myCommand = new OleDbDataAdapter("select * from "+tableName, DBConnector.myConnection);
DataSet myDataSet = new DataSet();
            
            myCommand.Fill(myDataSet, "Tables");

myCommand greift auf eine Stored Procedure zu und ich muss da einen Parameter übergeben.

476 Beiträge seit 2004
vor 17 Jahren

hallo Pako,

dann schau mal hier nach: Visual C# 2005 - Kapitel 26, dort solltest du finden was du suchst.

Alternativ könntest du im Forum nach Stichwörtern wie "stored procedure" usw. suchen, da wirst du sicher jede Menge Beispiele finden.

-yellow

Selbst ein Weg von tausend Meilen beginnt mit einem Schritt (chinesisches Sprichwort).

Mein Blog: Yellow's Blog auf sqlgut.de

P
Pako Themenstarter:in
78 Beiträge seit 2006
vor 17 Jahren

ja ich habe die ganze Zeit im Forum gesucht aber irgendwie habe ich parametriesierte Übergabe mit dem OleDbDataReader benutzt und damit kam ich zuerst nicht klar.

Jetzt funktioniert es. Vielen Dank!!


OleDbCommand myCommand = new OleDbCommand("select * From "+tableName, DBConnector.myConnection);
            
OleDbParameter myParam = new OleDbParameter();
myParam.Value = "Footer 1";
myCommand.Parameters.Add(myParam);
OleDbDataAdapter myAdapter = new OleDbDataAdapter(myCommand);
           
DataSet myDataSet = new DataSet();

myAdapter.Fill(myDataSet, "Test");
return myDataSet;

Wenn ich die Datenbank auf SQL umstellen würde musste ich lediglich den DataAdapter austauschen, korrekt?

Grüße

476 Beiträge seit 2004
vor 17 Jahren

jein.

du verwendest den OLE-Namespace und müsstest bei dem Umstieg auf MS SQL Server die entsprechendne Klassen durch die aus dem Namespace SqlClient austauschen. Eine bessere alternative wäre die in .NET 2.0 neu hinzugekommenen Klassen aus dem Namespace System.Data.Common zu verwenden.

-yellow

Selbst ein Weg von tausend Meilen beginnt mit einem Schritt (chinesisches Sprichwort).

Mein Blog: Yellow's Blog auf sqlgut.de