2017-07-21 3 views
-6

私は今このエラーに遭遇していますが、解決できませんでした。私はデータベース内のデータを更新しようとしていますが、Windowsフォームのボタンを押してください。エラーを取得しています "近くに '、'"の構文が正しくありません

私は、誰もが間違っているかを知っている場合は、私に教えてください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(); 
} 

を使用しています。

+1

具体的なTexBoxes値は何ですか? –

+2

SQL Server ** 2011 **はありません - 2000年、2005年、2008年、2008年R2、2012年、2014年、2016年、2017年のいずれかです。 –

+1

'mainmenu.tbxSelected'の内容は*おそらく*間違っていますが、これを調べることをお勧めします。 – paxdiablo

答えて

2

私はあなたの意図は、前者はおそらくカンマが含まれていると思われる、あなたのWHERE句で完全修飾型名につながる

mainmenu.tbxSelected.Text 

追加したと思われるのに対し、あなたは

mainmenu.tbxSelected 

を追加しています。

このようにSQLを構築すると、SQLインジェクション攻撃が発生する可能性があることに注意してください。これが懸念される場合は、ストアドプロシージャやORMツール(Entity Frameworkなど)を検討する方がよい場合があります。

+0

ありがとう、これが助けになった! –

関連する問題