Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 当数据源是查询时,从GridView更新数据库_Database_Vb.net - Fatal编程技术网

Database 当数据源是查询时,从GridView更新数据库

Database 当数据源是查询时,从GridView更新数据库,database,vb.net,Database,Vb.net,我有SQL查询: 选择T_DATA_LOG.ID、T_DATA_LOG.SerialNumber、T_DATA_LOG.Note、T_EVENT.Name 从T_DATA_LOG内部连接T_事件到T_DATA_LOG.ID_EVENT=T_EVENT.ID_事件 表T_DATA_EVENT是T_DATA_LOG的事件目录 我需要更新数据日志。注意 我有这个节目。如果我直接使用电子表格,它就会工作。如果我使用一个查询(连接两个表)作为数据源,它将不起作用 导入System.Data.OleDb 公

我有SQL查询: 选择T_DATA_LOG.ID、T_DATA_LOG.SerialNumber、T_DATA_LOG.Note、T_EVENT.Name 从T_DATA_LOG内部连接T_事件到T_DATA_LOG.ID_EVENT=T_EVENT.ID_事件

表T_DATA_EVENT是T_DATA_LOG的事件目录

我需要更新数据日志。注意

我有这个节目。如果我直接使用电子表格,它就会工作。如果我使用一个查询(连接两个表)作为数据源,它将不起作用

导入System.Data.OleDb 公共课

Dim connetionString As String
Dim connection As OleDbConnection
Dim adapter As OleDbDataAdapter
Dim cmdBuilder As OleDbCommandBuilder
Dim ds As New DataSet
Dim changes As DataSet
Dim sql As String
Dim i As Int32

Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    'connetionString = "Data Source=Server_Name\SQLEXPRESS;Initial Catalog=Test;Trusted_Connection=True;"
    connetionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & "e:\tmp\KuKacka2.0.accdb;Persist Security Info=False;"
    connection = New OleDbConnection(connetionString)
    'sql = "Select * from D_DATA_LOG" - This is Work, but I need view data from T_EVENT

    sql = "SELECT T_DATA_LOG.ID, T_DATA_LOG.SerialNumber, T_DATA_LOG.Note, T_EVENT.Name FROM T_DATA_LOG INNER JOIN T_EVENT ON T_DATA_LOG.ID_EVENT = T_EVENT.ID_EVENT;"

    Try
        connection.Open()
        adapter = New OleDbDataAdapter(sql, connection)
        adapter.Fill(ds)
        DataGridView1.DataSource = ds.Tables(0)
        connection.Close()
    Catch ex As Exception
        MsgBox(ex.ToString)
    End Try
End Sub



Private Sub DataGridView1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles DataGridView1.Click
    DataGridView1.DefaultCellStyle.SelectionBackColor = Color.Orange
End Sub

Private Sub Button2_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    'NOTE:  for this code to work, there must be a PK on the Table
    Try
        cmdBuilder = New OleDbCommandBuilder(adapter)
        changes = ds.GetChanges()
        If changes IsNot Nothing Then
            adapter.Update(changes)
        End If
        MsgBox("Changes Done")
    Catch ex As Exception
        MsgBox(ex.ToString)
    End Try
End Sub
末级

请给我一个建议。
谢谢,大卫

你说的“它不起作用”到底是什么意思?某种类型的错误消息?错误:不支持system.invalidoperationexception动态生成sql