【问题标题】:Delete Record in vb.net在 vb.net 中删除记录
【发布时间】:2014-02-07 01:06:02
【问题描述】:

我的删除命令有问题。没有错误,但是当我运行时,查询显示:

将 varchar 值 'System.Data.Linq.SqlClient.SqlProvider+SingleResult`1[WindowsApplication1.StoredProcedure3Result]' 转换为数据类型 int 时转换失败。*

这是我的代码:

Dim conn As New SqlConnection(
  "server=IAI-004;uid=admin;pwd=intelassist;database=payroll")
Dim cmd As SqlCommand = conn.CreateCommand
conn.Open()

cmd.CommandText = "DELETE FROM employee_info WHERE employee_id ='" &
                  DataGridView1.DataSource.ToString & "'"
cmd.ExecuteNonQuery()

conn.Close()

我认为问题是:

employee_id ='" & DataGridView1.DataSource.ToString & "'"

这是一个字符串。而我的employee_id 数据类型是整数。

我需要转换它吗?如果没有,有什么可能的解决方案?

【问题讨论】:

  • 如果 EmpID 显示在网格中,则将其作为 SQL 参数传递。您将数据源作为错误的 ID 传递。

标签: vb.net gridview


【解决方案1】:

去掉单引号:

另外,DataGridView1.DataSource.ToString 不会为您获取employee_id

cmd.CommandText = "DELETE FROM employee_info WHERE employee_id =" &  DataGridView1.DataSource.ToString

【讨论】:

  • 不会得到?所以你的意思是错了吗?你有什么想法得到emp_id吗?
【解决方案2】:

声明特定的行,然后循环删除查询。

    Dim Emp_ID As String
    For i As Integer = 0 To DataGridView1.Rows.Count - 1
     Emp_ID = DataGridView1.Rows(i).Cells(0).Value()   


    query = "DELETE FROM employee_info WHERE employee_id = '" + Emp_ID + "'"


            mysql_connect(True)
            cmd = New MySqlCommand(query, SQLConnection)
            cmd.Connection = SQLConnection
            cmd.CommandText = query
            cmd.ExecuteNonQuery()


Next
  MsgBox("Deleted")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-18
    • 1970-01-01
    • 2012-11-28
    • 1970-01-01
    • 2018-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多