2016-04-03 5 views
0

データベースのテーブルにリンクされているDataGridViewから選択した行を削除しようとしています。その次のエラーコードが記載されています。SQL DeleteステートメントがdataGridViewから行を選択するときに機能しない

enter image description here

私はここで間違っつもりどこで任意のアイデア?

削除ボタンコード

private void DeleteExtraBtn_Click(object sender, EventArgs e) 
{ 
    SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0; AttachDbFilename=C:\Users\Donald\Documents\Visual Studio 2013\Projects\DesktopApplication\DesktopApplication\Student_CB.mdf ;Integrated Security=True"); 
    con.Open(); 
    try 
    { 
     //Delete selected extra row  
     SqlCommand sda = new SqlCommand("Delete From Extra Where Extra_ID = @Extra_ID", con); 
     sda.Parameters.AddWithValue("@ExtraID", extraGridView.CurrentRow.Cells[0]); 
     sda.ExecuteNonQuery(); 

    } 
    catch(Exception ex) 
    { 
     MessageBox.Show(ex.Message); 
    } 


    con.Close(); 
    loadExtraTable(); 
} 

答えて

1

私はあなたがどこかのコマンドを実行してご覧くださいいけません。

追加;

sda.ExecuteNonQuery(); 

また、その値ではなくセルオブジェクトを参照しています。 はまた、あなたが@ExtraID@Extra_ID

private void DeleteExtraBtn_Click(object sender, EventArgs e) 
{ 
    SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0; AttachDbFilename=C:\Users\Donald\Documents\Visual Studio 2013\Projects\DesktopApplication\DesktopApplication\Student_CB.mdf ;Integrated Security=True"); 
    con.Open(); 
    try 
    { 
     //Delete selected extra row  
     SqlCommand sda = new SqlCommand("Delete From Extra Where Extra_ID = @ExtraID", con); 
     sda.Parameters.AddWithValue("@ExtraID", extraGridView.CurrentRow.Cells[0].Value); 
     sda.ExecuteNonQuery(); 
    } 
    catch(Exception ex) 
    { 
     MessageBox.Show(ex.Message); 
    } 


    con.Close(); 
    loadExtraTable(); 
} 
+0

ああ、謝罪します。私は上記の例でそれを含んでいませんでした。しかし、それはまだこれで動作しません。 –

+1

良い習慣の問題は、簡単なクリーンアップを可能にするためにブロックを使用して接続とコマンドをラップする必要があります。あなたはコンが開いていることを確認しましたか?それが開かないならば、エラーを投げることはありません。 – Wobbles

+0

上記のコードに追加したばかりのエラーを表示します。 –

-1

"ExtraId"、テキストボックス、文字列は何ですか?

ことによって、あなたが使用する必要があります。

SqlCommand sda = new SqlCommand("Delete From Extra Where Extra_ID = @" + Extra_ID.Text, con); 
+0

を参照して、私は今、その上映をエラーコードを追加しました。 –

関連する問題