Sql 从数据库中删除datagridview中的选定行
我正在尝试使用SQL Server删除用户在datagridview中选择的行 我有一个datagridview,它加载数据库的内容,在本例中是Sql 从数据库中删除datagridview中的选定行,sql,sql-server,vb.net,Sql,Sql Server,Vb.net,我正在尝试使用SQL Server删除用户在datagridview中选择的行 我有一个datagridview,它加载数据库的内容,在本例中是Username和Password。 请记住,每个用户名在数据库中都是唯一的,因此我应该能够使用唯一的用户名删除每一行 我目前的SQL是从“Username”=?的“Users&Passwords”中删除,我不确定这是否完全正确,但是每当我单击QueryBuilder时,它似乎会接受它 我必须尝试这样做的代码如下: Private Sub btn
Username
和Password
。
请记住,每个用户名在数据库中都是唯一的,因此我应该能够使用唯一的用户名删除每一行
我目前的SQL是从“Username”=?的“Users&Passwords”中删除,我不确定这是否完全正确,但是每当我单击QueryBuilder
时,它似乎会接受它
我必须尝试这样做的代码如下:
Private Sub btn_remove_Click(sender As Object, e As EventArgs) Handles btn_remove.Click
For Each row As DataGridViewRow In DataGridView1.SelectedRows
Dim usernametodelete As String = DataGridView1.SelectedRows(0).Cells(0).Value.ToString
'TextBox1.Text += usernametodelete
Me.Users_PasswordsTableAdapter.DeleteUser(usernametodelete)
Me.Users_PasswordsTableAdapter.Fill(Me.ManageUsersDataSet._Users_Passwords)
Next
End Sub
我希望当用户单击
Remove user(s)
按钮时,从datagridview中选择的行将从数据库中删除这些行。任何帮助都将不胜感激。您的参与比您需要的稍微多一些。理想情况下,您应该采取以下步骤:
0)重命名您的表,使其不包含&字符-这只是自找麻烦
1) 使用如下过程将表添加到数据集:右键单击设计图面,新建tableadapter,配置连接字符串,将查询设置为SELECT*FROM Username-WHERE-like@Username
,确保设置了其他内容,例如是否要生成dbdirect方法,以及是否希望数据集刷新新值
2) 在“数据源”窗口中(默认情况下可能不显示,请在visual studio菜单的上找到它),将“用户”节点从“数据源”窗口拖放到窗体上。这将创建绑定到类型化datatable的datagridview,还将创建dataset、tableadapter、tableadaptermanager(不需要;可以删除)、bindingnavigator工具条(也不需要,但上面有一个方便的预连线保存按钮)和bindingsource。它还将向form_load事件处理程序中预填充一些代码,以填充datatable
3) 就是这样-表单有一个网格,绑定到一个数据表。该网格能够删除行-单击行标题并按键盘上的删除按钮,行消失。单击toolstrip中的save图标,更改将保留到数据库中。您唯一需要做的就是首先将数据放入表中。我给出了一个SQL,它允许您选择一些要加载的用户名,但是您可以通过将表单_load中的代码行更改为:
yourTableAdapterName.Fill(yourDatasetname.YourDatatableName, "%")
将百分比作为名称传递就像DOS中的*通配符。LIKE%将选择所有记录。当然,您也可以保留默认设置(它将引用toolstrip上的文本框),而是运行程序,在toolstrip上的文本框中添加一个%并单击“填充”。或者,您可以将JOHNSMITH或JOHN%放入文本框并填充,以分别加载该用户/这些用户
希望你已经完成了1和2
关于这些东西是如何工作的背景故事:
DataTables是数据库中表的客户端表示形式。它们并不包含数据库中的所有数据,只包含您希望处理的部分数据。当您从数据库加载一行时,您可以对其进行编辑、删除(标记为已删除),并且当您调用tableAdapter.Update(yourtable)
时,您所做的更改将保留到数据库中。请注意,即使它被称为Update
,该方法仍将保存新行(通过执行INSERT)、已删除行(sqldelete)和更新(sqlupdate)。如果datatable从数据库中添加了4行laodd,然后添加了2行新行,对加载的3行进行更改并删除第4行,则调用tableadapter.Update
将所有这些更改保存到数据库中。您不需要通过调用tableadapter.insert/update/delete来选择datatable来手动持久化这些更改。因此,使用tableadapter的流程如下:
tableAdapter.Fill(datatable, maybe,parameters,to,control,the,fill,here)
'work with the datatable here, change, insert, delete. Use loops/code, use the UI, etc
tableAdapter.Update(datatable) 'save changes
你的参与比你需要的稍微多一些。理想情况下,您应该采取以下步骤: 0)重命名您的表,使其不包含&字符-这只是自找麻烦 1) 使用如下过程将表添加到数据集:右键单击设计图面,新建tableadapter,配置连接字符串,将查询设置为
SELECT*FROM Username-WHERE-like@Username
,确保设置了其他内容,例如是否要生成dbdirect方法,以及是否希望数据集刷新新值
2) 在“数据源”窗口中(默认情况下可能不显示,请在visual studio菜单的上找到它),将“用户”节点从“数据源”窗口拖放到窗体上。这将创建绑定到类型化datatable的datagridview,还将创建dataset、tableadapter、tableadaptermanager(不需要;可以删除)、bindingnavigator工具条(也不需要,但上面有一个方便的预连线保存按钮)和bindingsource。它还将向form_load事件处理程序中预填充一些代码,以填充datatable
3) 就是这样-表单有一个网格,绑定到一个数据表。该网格能够删除行-单击行标题并按键盘上的删除按钮,行消失。单击toolstrip中的save图标,更改将保留到数据库中。您唯一需要做的就是首先将数据放入表中。我给出了一个SQL,它允许您选择一些要加载的用户名,但是您可以通过将表单_load中的代码行更改为:
yourTableAdapterName.Fill(yourDatasetname.YourDatatableName, "%")
将百分比作为名称传递就像DOS中的*通配符。LIKE%将选择所有记录。当然,您也可以保留默认设置(它将引用toolstrip上的文本框),而是运行程序,在toolstrip上的文本框中添加一个%并单击“填充”。或者,您可以将JOHNSMITH或JOHN%放入文本框并填充,以分别加载该用户/这些用户
希望你是个好朋友