2017-07-21 3 views
-6

Ich habe diesen Fehler seit einiger Zeit erkannt und konnte ihn immer noch nicht beheben. Ich versuche, die Daten in meiner Datenbank zu aktualisieren, mit einem Knopfdruck in einem Windows-Formular.Fehler wird angezeigt "Falsche Syntax in der Nähe von ','"

Ich bin mit SQL Server 2011.

private void btnEdit_Click_1(object sender, EventArgs e) 
{ 
    MainMenu mainmenu = new MainMenu(); 
    SqlCommand cmd = new SqlCommand("Update PresentationSpec SET Pres_name = @Pres_name, Prestor_name = @Prestor_name, Pres_Summary = @Pres_Summary, Est_Length = @Est_Length, Date_Presented = @Date_Presented WHERE Id=" + mainmenu.tbxSelected); 
    cmd.Connection=connection; 
    connection.Open(); 
    cmd.Parameters.AddWithValue("@Pres_name", tbxpresName.Text); 
    cmd.Parameters.AddWithValue("@Prestor_name", tbxprstorName.Text); 
    cmd.Parameters.AddWithValue("@Pres_Summary", rtbSummary.Text); 
    cmd.Parameters.AddWithValue("@Est_Length", tbxLength.Text); 
    cmd.Parameters.AddWithValue("@Date_Presented", tbxDate.Text); 
    cmd.ExecuteNonQuery(); 
    this.Close(); 
    Form2 editscreen = new Form2(); 
    Refresh(); 
} 

Wenn jemand weiß, was falsch ist, bitte sagen Sie mir.

+1

Was sind die konkreten TexBoxes-Werte? –

+2

Es gibt keinen SQL Server ** 2011 ** - wir haben 2000, 2005, 2008, 2008 R2, 2012, 2014, 2016 und 2017 - also welcher ist es wirklich ?? –

+1

Was ist * wahrscheinlich * falsch ist der Inhalt von 'mainmenu.tbxSelected', schlage ich vor, dass Sie das untersuchen. – paxdiablo

Antwort

2

Sie sind Anfügen

mainmenu.tbxSelected 

während ich den Verdacht, dass Ihre Absicht

mainmenu.tbxSelected.Text 

Erstere würde wahrscheinlich führen zu einem voll qualifizierten Typnamen in Ihrer WHERE-Klausel anhängen war, die Kommas enthalten würde.

Als Nebenbemerkung sollten Sie beachten, dass Sie SQL-Injection-Attacken möglicherweise offen für SQL-Injection-Angriffe öffnen. Wenn das ein Problem ist, können Sie besser eine gespeicherte Prozedur oder ein ORM-Tool (wie Entity Framework) in Betracht ziehen.

+0

Danke, das hat geholfen! –

Verwandte Themen