【问题标题】:Delete records from SQL table in VB.Net [closed]从VB.Net中的SQL表中删除记录[关闭]
【发布时间】:2012-11-28 08:55:09
【问题描述】:

我正在尝试从我的表中删除记录,但无法这样做。我有带有插入、更新、删除和保存按钮的窗口窗体。我可以插入数据,但不能从该表中删除特定或任何记录。下面是我的代码。

每当我单击“删除”按钮时,我都会收到(“删除表上的记录时出错...”和 ex.Message,“删除记录”)只有 msgbox。

我错过了什么吗?请指教。任何帮助都会很棒。谢谢!

Private Sub Deletebtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Deletebtn.Click

    Dim con As New SqlConnection
    Dim cmd As New SqlCommand
    Try
        con.ConnectionString = "Server=USRAG-L-0067215\SQLEXPRESS;Database=Alamo Products_Design Data;Trusted_Connection=True"
        con.Open()
        cmd.Connection = con
        cmd.CommandText = "Delete From Design_Parameters where DesignID= ? "
        cmd.ExecuteNonQuery()
        If MessageBox.Show("Do you really want to Delete this Record?", "Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) = DialogResult.No Then

            MsgBox("Operation Cancelled")

            Exit Sub

        End If
    Catch ex As Exception
        MessageBox.Show("Error while deleting record on table..." & ex.Message, "Delete Records")

    Finally

        con.Close()
    End Try
End Sub

结束类

【问题讨论】:

  • DesignID= ? 不起作用,你的意思是DesignID='?'
  • 您正在使用参数化查询,但尚未为参数分配值。如果这不是问题,您需要发布您收到的实际异常。
  • 另外,如果您已经删除了记录,那么询问它是没有意义的。您的代码将显示 Operation cancelled,但实际上并非如此。
  • @alroc:SQL 中的参数用@ 表示,而不是?
  • @Neolisk..谢谢您的回复。即使我输入“?”,它也会给我返回值带有“?”的 designID正确的?你有什么建议?

标签: vb.net sql-server-2008 visual-studio-2010 delete-row


【解决方案1】:

您需要为 DesignID 添加参数

Dim con As New SqlConnection
    Dim cmd As New SqlCommand
    Try
        con.ConnectionString = "Server=USRAG-L-0067215\SQLEXPRESS;Database=Alamo Products_Design Data;Trusted_Connection=True"
        con.Open()
        cmd.Connection = con
        cmd.CommandText = "Delete From Design_Parameters where DesignID= @DesignID"
    cmd.Parameters.Add(New SqlParameter("@DesignID", yourvaluehere))
        cmd.ExecuteNonQuery()
        If MessageBox.Show("Do you really want to Delete this Record?", "Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) = DialogResult.No Then

            MsgBox("Operation Cancelled")

            Exit Sub

        End If
    Catch ex As Exception
        MessageBox.Show("Error while deleting record on table..." & ex.Message, "Delete Records")

    Finally

        con.Close()
    End Try

【讨论】:

  • 感谢您的帮助和代码,一个问题....我应该在“yourvaluehere”中输入什么值? cmd.Parameters.Add(New SqlParameter("@DesignID", yourvaluehere))
  • IT应该是你要删除的记录的主键“DesignID”的值。请将语句“cmd.ExecuteNonQuery()”放在条件(MessageBox.Show)的“else”部分:否则,您将删除记录,提出问题,但无法回滚。塞尔吉
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多