2011-09-08 46 views
0

sample如何根据搜索结果删除mysql服务器中的用户?

我有一个名称列表,它从MySQL数据库中检索DataGrid控件。我可以搜索他们,直到我有一个结果。我希望能够在结果数等于1时显示groupbox控件。另外,在groupbox中,我有一个按钮,单击它时将从服务器中删除此用户,并从mysql表中将其信息从“employee” 。当用户被删除时,我会在消息框中显示一条确认消息,并用更新后的列表重新加载表。到目前为止,我遇到的唯一两个问题是当结果等于1时显示groupbox,并根据搜索结果的名称从sql server中删除用户。即时通讯在Windows 7笔记本电脑的Visual Basic 2010 Express中使用vb.net。谢谢!

EDIT1:

继承人到目前为止我的代码,请建议如何我可以申请你的答案吧。谢谢!

Private Sub TextBox1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp 
    'Search Function. 
    Dim sqlsearch1 As MySqlCommand = New MySqlCommand("SELECT * FROM employee where name LIKE '%?name%' GROUP BY name;", con) 
    Dim sqlsearch2 As MySqlCommand = New MySqlCommand("SELECT * FROM employee where title LIKE '%?title%' GROUP BY title;", con) 
    sqlsearch1.Parameters.AddWithValue("?name", TextBox1.Text) 
    sqlsearch2.Parameters.AddWithValue("?title", TextBox1.Text) 

    If RadioName.Checked = True Then 
     con.Open() 

     Dim table As DataTable 
     For Each table In ds.Tables 
     Next 
     ' Clear all rows of each table. 
     ds.Clear() 

     ' display results in Datagrid1. 
     DataAdapter1.SelectCommand = sqlsearch1 
     DataAdapter1.Fill(ds, "stratos") 
     DataGrid1.DataSource = ds 
     DataGrid1.DataMember = "stratos" 
     con.Close() 
    Else 
    End If 

    If RadioTitle.Checked = True Then 
     con.Open() 

     Dim table As DataTable 
     For Each table In ds.Tables 
     Next 
     ' Clear all rows of each table. 
     ds.Clear() 

     ' display results in Datagrid1. 
     DataAdapter1.SelectCommand = sqlsearch2 
     DataAdapter1.Fill(ds, "stratos") 
     DataGrid1.DataSource = ds 
     DataGrid1.DataMember = "stratos" 
     con.Close() 
    Else 
    End If 
End Sub 

回答

1

对于删除,您可以简单地发出删除语句并将其传递给参数,即名称。

DELETE FROM MyTable WHERE MyName = @Name

林不知道你需要什么样的组框。

+0

我要显示一组控件,只有当datagrid控件中的一个结果。此外,即时通讯有点困惑,我如何从数据网格@name出来...就像我如何获得数据网格中的某一列? – daniel11

+0

http://msdn.microsoft.com/en-us/library/x8x9zk5a.aspx获取选定单元格的列和行索引。 – roymustang86

0

如果你正在做的事情一样

Set recBooks = con.Execute("SELECT * FROM Admin WHERE Name like 'hey' ;") 

recbooks.count将返回的记录数。

以及用于删除,只需运行查询

DELETE FROM Admin WHERE Name = {0} 

按钮被点击时,使用重新加载数据网格datagrid.refresh()

+0

你的代码没有意义,theres没有“设置”功能,是原生的vb.net我认为你在谈论“列表(字符串)”,功能。另外“Execute”不是mysqlconnection函数的成员。如果您可以详细阐述一下,我可以如何将您的代码应用于我的问题,那么请这样做。此外,即时更新我的​​问题与我的脚本到目前为止。 – daniel11

+0

不幸的是,数据集没有办法检查行数。尝试使用sqlsearch1.Executescalar() 该代码将为: num_rows = ConverttoInt32(sqlsearch1.Executescalar()); 基于此,您可以执行datagrid.fill或不执行。 – roymustang86

+0

它不起作用,并记住即时通讯在Windows 7上使用vb.net不C或C++ ... – daniel11

相关问题