2017-02-19 2 views
3

Ich bekomme die Zeilennummer vom Benutzer durch Klicken auf die Zeile. Dann speichere ich diese Nummer (vom Benutzer erhalten) in einer Ganzzahl. Sie wenden dynamische Abfrage an, um relevante Daten von der Datenbank zu holen. Aber es funktioniert nicht meine Abfrage folgt "Titel aus Projekt1 wählen, wo ID = x" Wo ID und Titlw ist der Name meiner Spalten und Projekt1 ist der Name der Tabelle.Dynamische Abfrage funktioniert nicht in asp.net

Hier ist mein C# -Code

private void letsee() 
{ 
     conn.Open(); 

     using (SqlCommand cmd = new SqlCommand("select Title from project1 where ID = x", conn)) 
     { 
      // create a SQL parameter to add them to the command - this will limit the results to the single user 
      SqlParameter p = new SqlParameter("Title", System.Data.SqlDbType.Text); 
      p.Value = 1; 

      cmd.Parameters.Add(p); 

      // as we are only selecting one column and one row we can use ExecuteScalar 
      string connType = cmd.ExecuteReader().ToString(); 

      //to display on the frontend 
      NEW.InnerText = connType; 
     } 
    } 
+0

Ist ID eine ganze Zahl oder ein String? Ein Parameter muss '@' haben. Also sollten Sie "Select @ Title ...." und SqlParameter ("@ Title" .... – jdweng

+0

ExecuteReader.ToString() ist nicht das, was Sie denken, dass es ist. – Crowcoder

+0

Ist das wirklich MySQL? Wenn ja, Sie verwenden der falsche Provider ('SqlCommand',' SqlParameter'). Sie müssen 'MySqlCommand' usw. verwenden. – Crowcoder

Antwort

0

Ich glaube, Sie nicht setzen Sie id richtig in der Abfrage.

richtige Version wie die (Anmerkung @ -Zeichen) aussehen:

SqlCommand cmd = new SqlCommand("select Title from project1 where ID = @Id", conn); 

Dann

SqlParameter param = new SqlParameter(); 
param.ParameterName = "@Id"; 
param.Value   = 1; 

Schließlich

cmd.Parameters.Add(param); 

Refere here für Tutorial.

+0

Funktioniert immer noch nicht.Es funktioniert nicht.Es wird Fehler wie" Ungültiger Spaltenname 'x' "ausgegeben. Während x ist nur eine ganze Zahl, die ich vom Benutzer bekomme. Dann auf der Basis von xi möchte relevanten Titel anzeigen. Aber es funktioniert nicht. –

+0

Wo haben Sie "x" in Ihrem Code? Könnten Sie ein Schnipsel teilen? –