从vb.net中的多个表更新数据集

时间:2015-08-31 09:23:32

标签: vb.net

我正在使用Windows窗体应用程序我有一个数据网格视图,它填写表用户权限,我使用命令构建器及其更新表,一切正常,但现在我必须显示菜单名称来自菜单表在该网格视图和更新用户权限表中使用命令构建器更新方法如何实现,请指导我 这是我的代码

  Public Sub ShowData()

    Dim cmd As SqlCommand = New SqlCommand("SELECT MenuID,chkadd, chkedit, chkdel, chkprint, chkview FROM UserRights where userID = 'Admin'", con)
    cmd.CommandType = CommandType.Text

    myDA = New SqlDataAdapter(cmd)
    'Automatically generates DeleteCommand, UpdateCommand and InsertCommand for DataAdapter object  
    Dim builder As SqlCommandBuilder = New SqlCommandBuilder(myDA)
    myDataSet = New DataSet()
    myDA.Fill(myDataSet, "UserRights")
    DataGridView1.DataSource = myDataSet.Tables("UserRights").DefaultView
    con.Close()
    con = Nothing
End Sub

Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As    System.EventArgs) Handles btnSave.Click
    Me.Validate()
    Me.myDA.Update(Me.myDataSet.Tables("UserRights"))
    Me.myDataSet.AcceptChanges()
End Sub

菜单表包含menuID,menuName,menuText,programID和userrights表包含userID,menuID,programID,chkadd,chkdel,chkedit,chkprint,chkview

我想在网格视图中使用来自userrights

的数据显示menuName

1 个答案:

答案 0 :(得分:0)

问题是你在sql查询中只调用1个表中的值而不是调用2个表。如果要显示两个表的结果,则需要使用JOIN。例如,你需要有一个名为“ MenuName“也在你的userrights表中。到目前为止,你的userrights表包含userID,menuID,programID,chkadd,chkdel,chkedit,chkprint,chkview。在userrights表中添加”MenuName“列后, 您可以使用SQL JOIN查询来显示名为“MenuName”的列,并在datagridview.Hope中显示结果,这有助于。