无法从列表中删除当前项目,因为没有当前项目
Current item cannot be removed from the list because there is no current item
我写了这段代码来删除选定的记录:
Dim Str As String = "DELETE FROM TableName WHERE ID=" & IDTextBox.Text & ""
Dim cmd As New SqlCommand
If Sqlcon.State = ConnectionState.Open Then Sqlcon.Close()
Sqlcon.Open()
With cmd
.Connection = Sqlcon
.CommandType = CommandType.Text
.CommandText = Str
.ExecuteNonQuery()
.Dispose()
End With
Sqlcon.Close()
但是我得到这个错误:
(当前项目无法从列表中删除,因为没有当前项目)
我找不到问题!
您需要验证文本框中的输入以确保它是一个数字。 (我猜 ID 字段是一个数字)TryParse
将 return True
或 False
如果 True
它将用数字填充第二个参数。
最好将数据库代码与用户界面代码分开。
命令和连接都需要处理,因此它们应该在 Using
中本地声明 block.You 永远不必检查 ConnectionState
因为连接总是在方法中它被使用了。在别处声明连接的地方,删除它。
您可以将 CommandText
和 Connection
直接传递给命令的构造函数。 CommandType.Text
是默认值,因此您没有明确分配它。
为避免 sql 注入并确保向服务器提供正确的类型 始终 使用参数。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim Id As Integer
If Integer.TryParse(IDTextBox.Text, Id) Then
DeleteRecord(Id)
Else
MessageBox.Show("Please enter a valid ID")
End If
End Sub
Private OPConStr As String = "Your connection string."
Private Sub DeleteRecord(id As Integer)
Dim Str As String = "DELETE FROM TableName WHERE ID= @ID;"
Using SqlCon As New SqlConnection(OPConStr),
cmd As New SqlCommand(Str, SqlCon)
cmd.Parameters.Add("@ID", SqlDbType.Int).Value = id
SqlCon.Open()
cmd.ExecuteNonQuery()
End Using 'disposes the command and closes and disposes the connection
End Sub
我写了这段代码来删除选定的记录:
Dim Str As String = "DELETE FROM TableName WHERE ID=" & IDTextBox.Text & ""
Dim cmd As New SqlCommand
If Sqlcon.State = ConnectionState.Open Then Sqlcon.Close()
Sqlcon.Open()
With cmd
.Connection = Sqlcon
.CommandType = CommandType.Text
.CommandText = Str
.ExecuteNonQuery()
.Dispose()
End With
Sqlcon.Close()
但是我得到这个错误: (当前项目无法从列表中删除,因为没有当前项目)
我找不到问题!
您需要验证文本框中的输入以确保它是一个数字。 (我猜 ID 字段是一个数字)TryParse
将 return True
或 False
如果 True
它将用数字填充第二个参数。
最好将数据库代码与用户界面代码分开。
命令和连接都需要处理,因此它们应该在 Using
中本地声明 block.You 永远不必检查 ConnectionState
因为连接总是在方法中它被使用了。在别处声明连接的地方,删除它。
您可以将 CommandText
和 Connection
直接传递给命令的构造函数。 CommandType.Text
是默认值,因此您没有明确分配它。
为避免 sql 注入并确保向服务器提供正确的类型 始终 使用参数。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim Id As Integer
If Integer.TryParse(IDTextBox.Text, Id) Then
DeleteRecord(Id)
Else
MessageBox.Show("Please enter a valid ID")
End If
End Sub
Private OPConStr As String = "Your connection string."
Private Sub DeleteRecord(id As Integer)
Dim Str As String = "DELETE FROM TableName WHERE ID= @ID;"
Using SqlCon As New SqlConnection(OPConStr),
cmd As New SqlCommand(Str, SqlCon)
cmd.Parameters.Add("@ID", SqlDbType.Int).Value = id
SqlCon.Open()
cmd.ExecuteNonQuery()
End Using 'disposes the command and closes and disposes the connection
End Sub