2016-10-19 1 views
0

Ich habe die folgenden C#, um einen Datensatz UPDATE, aber das Textfeld zeigt, aber nicht auf die Datenbank aktualisieren. Ebenso kann ich auch keinen Datensatz hinzufügen.Warum wird meine einfache C# -Website nicht mit GridView auf db aktualisiert?

private DataTable GetData(SqlCommand cmd) 
    { 
     DataTable dt = new DataTable(); 
     SqlConnection con = new SqlConnection(strConnString); 
     SqlDataAdapter sda = new SqlDataAdapter(); 
     cmd.CommandType = CommandType.Text; 
     cmd.Connection = con; 
     con.Open(); 
     sda.SelectCommand = cmd; 
     sda.Fill(dt); 
     return dt; 
    } 

Anzahl:

protected void AddNewMainPost(object sender, EventArgs e) 
{ 
    string postID = ((TextBox)GridView1.FooterRow.FindControl("txtPostID")).Text; 
    string Name = ((TextBox)GridView1.FooterRow.FindControl("txtSelect")).Text; 
    SqlConnection con = new SqlConnection(strConnString); 
    SqlCommand cmd = new SqlCommand(); 
    cmd.CommandType = CommandType.Text; 
    cmd.CommandText = "insert into homepageSelection(postID, selectionText) " + 
    "values(@postID, @selectionText,);" + 
    "select postID,selectionText, from homepageSelection"; 
    cmd.Parameters.Add("@postID", SqlDbType.VarChar).Value = postID; 
    cmd.Parameters.Add("@selectionText", SqlDbType.VarChar).Value = Name; 
    GridView1.DataSource = GetData(cmd); 
    GridView1.DataBind(); 
} 

aktualisieren

protected void UpdateMainPost(object sender, GridViewUpdateEventArgs e) 
    { 
     string postID = ((Label)GridView1.Rows[e.RowIndex].FindControl("lblpostID")).Text; 
     string Name = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("txtSelec")).Text; 
     SqlConnection con = new SqlConnection(strConnString); 
     SqlCommand cmd = new SqlCommand(); 
     cmd.CommandType = CommandType.Text; 
     cmd.CommandText = "update homepageSelection set [email protected], " + 
     "where [email protected];" + 
     "select postID,selectionText from homepageSelection"; 
     cmd.Parameters.Add("@postID", SqlDbType.VarChar).Value = postID; 
     cmd.Parameters.Add("@selectionText", SqlDbType.VarChar).Value = Name; 
     GridView1.EditIndex = -1; 
     GridView1.DataSource = GetData(cmd); 
     GridView1.DataBind(); 
    } 

Ich habe zwei Felder in der Datenbank:

Table: homepageSelection Fields: postID and selectionText 
+1

Beide Abfragen enthalten einen Syntaxfehler. Seltsam, dass Sie keine Ausnahme sehen. Fangen Sie Ausnahmen, ohne sie zu zeigen? Übrigens, wo ist der Code von GetData? Es scheint hier ziemlich wichtig – Steve

+0

Befehl Text Query String sieht falsch aus, verwenden Sie versuchen zu fangen, um zu sehen, wo die Zeichenfolge falsch ist. – inan

+0

@Steve Sorry, aktualisierter Code. Ich wünschte ich wüsste, wovon du sprichst ... Danke für deine Hilfe :-) –

Antwort

0

Wie ich aus Ihrem Code oben sehen kann, haben Sie einen Syntaxfehler in beiden Abfragen, aber am wichtigsten ist die Tatsache, dass Sie Ihren Befehl der Verbindung nicht zuordnen. Wenn Sie die Verbindung nicht innerhalb der GetData-Methode neu erstellen, kann Ihr Befehl daher nicht ausgeführt werden.

Also, die Syntaxfehler zu beheben

"select postID,selectionText from homepageSelection"; 
          ^^^ comma not valid here 

cmd.CommandText = @"update homepageSelection set 
        [email protected]" + 
               ^^^^ again comma not valid here 

cmd.CommandText = "insert into homepageSelection(postID, selectionText) " + 
        "values(@postID, @selectionText);" + 
               ^^^ no comma here 

EDIT: es scheint, dass Sie die Verbindung in der GetData-Methode erstellen, so dass Sie brauchen es nicht in den beiden Aufrufen von Methoden.

+0

vielen Dank. Allerdings wird es jetzt von einer Bearbeitung aktualisiert, kann aber immer noch keinen neuen Datensatz hinzufügen? –

+0

Haben Sie das Komma auch am Ende der Einfügung in Abfrage entfernt? – Steve

+0

habe ich ja, wie oben. –

Verwandte Themen