Bearbeiten Sie optionale Parameter in der WHERE-KlauselC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Bearbeiten Sie optionale Parameter in der WHERE-Klausel

Post by Anonymous »

Ich arbeite an einem Webformular, das eine Zeichenfolge empfängt, die eine SQL-Abfrageanweisung mit SQL-Parametern enthält. Es generiert ein ASP.NET-Steuerelement für jeden Parameter und weist dann den Wert jedes Steuerelements den Parametern der SQL-Abfragezeichenfolge zu, die von einem SqlCommand zum Füllen eines DataAdapter verwendet wird.

Ich habe einige Probleme bei der Verwaltung der optionalen Parameter.

Bsp.

1) Übergeben Sie die Zeichenfolge an die Seite:

Code: Select all

string query = "SELECT * FROM Table WHERE Field1=@P1 AND field2=@P2";
2) Generieren Sie eine Websteuerung für jeden Parameter

Code: Select all

TextBox P1 = new TextBox();
P1.ID = "P1";
...
TextBox P2 = new TextBox();
P2.ID = "P2";
...
PanelParameters.Controls.Add(P1);
PanelParameters.Controls.Add(P1);
3) Übergeben Sie beim Klicken den Wert jedes Parameters als Parameter an den SqlCommand:

Code: Select all

SqlCommand cmd = new SqlCommand(query, conn);

cmd.Parameters.AddWithValue("@P1", P1.Text);

cmd.Parameters.AddWithValue("@P2", P2.Text);
4) Genau hier ist es in Ordnung!

Aber wenn ein Parameter OPTIONAL ist, wie kann ich ihn verwalten?

Wenn P2 optional wäre, könnte der Benutzer es nicht kompilieren und in diesem Fall möchte ich P2 nicht = NULL setzen (den Wert von festlegen). den Parameter DbNull.Value), aber ich möchte, dass P2 aus der Abfrage-SQL verschwindet.

Können Sie mir helfen?

* UPDATE *
Ich kann die Abfrage, die ich erhalte, nicht bearbeiten, da sie sehr komplexe SQL-Anweisungen enthält.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post