簡體   English   中英

在C#Windows窗體中從DataGridView刪除行

[英]Delete Row from DataGridView in C# windows Form

我想從C#Windows窗體的DataGridView中刪除行,我的代碼僅工作一次

                    if (dataGridView1.Columns[e.ColumnIndex].Name == "Delete")
                    {
                        try
                        {



                        using (con = new SqlConnection(C))
                        {
                            using (objCom = new SqlCommand("DELETE FROM Crud where Id = @Id;SELECT id as 'Customer Id' , Ch_Code as 'Customer Code' , Ch_Name as 'Customer Name',Ch_Type as 'Type' FROM Crud", con))
                            {
                                objCom.Parameters.AddWithValue("@id", dataGridView1.Rows[e.RowIndex].Cells[0].Value);
                                using ( objAdp = new SqlDataAdapter(objCom))
                                {


                                    objAdp.Fill(DS,"xyz");
                                    dataGridView1.DataSource = DS.Tables["xyz"].DefaultView;
                                }
                            }
                        }
                        }
                        catch (Exception EX)
                        {

                            MessageBox.Show(EX.Message);
                        }
                    }

它給了我例外

將nvarchar值'Delete'轉換為數據類型int時轉換失敗

使用AddWithValue的做法是避免Sql注入的好方法。 但是,當使用.Value成員時,需要確保您的Value不包含字符串,而需要為動態事務傳遞整數。

要做的一件事是將您的值轉換為Int32,這將是一個有效的int,也許不會返回錯誤。

您的第二個選擇是使用SqlDbType.Int轉換。 這樣,您將確保插入數據庫可接受的整數。 像這樣:

(SqlDbType.Int)dataGridView1.Rows[e.RowIndex].Cells[0].Value;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM