如何在DataGridView中编辑和删除数据?

时间:2018-07-17 14:41:09

标签: .net vb.net

我正在VB.NET中开发一个桌面应用程序,我想在其中进行编辑,删除以及在DataGridView中添加新行。我该如何实现?

获取错误“从字符串“ Update dbo.Trans set BCode ='1'转换为”“ Double”无效。

我尝试过的代码:

con =新建SqlConnection(“数据源= USER \ SQLEXPRESS;初始目录= Sap;集成安全性= True”)

    If (TbCode.Text = "" Or TbItem.Text = "" Or TbWgt.Text = "") Then
        MessageBox.Show("Please fill all the columns")
    Else
        con.Open()

        cmd1 = New SqlCommand("Update  dbo.Trans set BCode='" + TbCode.Text + "',BName='" + Label2.Text + "',ICode='" + TbItem.Text + "',IName='" + Label3.Text + "',Qty='" + TbQty.Text + "',Weight='" + TbWgt.Text + "',RWeight='" + Label4.Text + "',Rate='" + Rate + "'  where date=@date and depot=@depot and BCode=@bcode and Icode=@icode", con)
        cmd1.Parameters.AddWithValue("@depot", TbDepot.Text)
        cmd1.Parameters.AddWithValue("@icode", TbItem.Text)
        cmd1.Parameters.AddWithValue("@date", IDate.Text)
        cmd1.Parameters.AddWithValue("@bcode", TbCode.Text)
        cmd1.ExecuteNonQuery()


    End If


    con.Close()

    Call Fillgrid()
    Call emptyfun()

End Sub

1 个答案:

答案 0 :(得分:0)

这里的问题是您正在使用加号来连接字符串,并且应该使用与号。

如果您打开“严格选项”,这将由编译器引起。

这是您更新的代码。

cmd1 = New SqlCommand("Update  dbo.Trans set BCode='" & TbCode.Text & "',BName='" & Label2.Text & "',ICode='" & TbItem.Text & "',IName='" & Label3.Text & "',Qty='" & TbQty.Text & "',Weight='" & TbWgt.Text & "',RWeight='" & Label4.Text & "',Rate='" & Rate & "'  where date=@date and depot=@depot and BCode=@bcode and Icode=@icode", con)
        cmd1.Parameters.AddWithValue("@depot", TbDepot.Text)
        cmd1.Parameters.AddWithValue("@icode", TbItem.Text)
        cmd1.Parameters.AddWithValue("@date", IDate.Text)
        cmd1.Parameters.AddWithValue("@bcode", TbCode.Text)
        cmd1.ExecuteNonQuery()

但是,从技术上讲,您应该在整个update语句中使用参数,而不仅仅是where子句。另一个建议是显式定义参数的数据类型,而不是使用AddWithValue。