2016-12-14 77 views
0

首先,我想说,感谢所有的程序员,使这个网站如此高效的人!我很自豪地说,我在VB上获得的80%的编程知识是因为本网页中的所有示例和答案。无论如何,所以我正在为我的公司开发质量控制应用程序,并且在我的一个表单中有一个datagridview。用户可以对其进行更改,之后他/她必须将数据网格保存回MS Access数据库。我尝试了一切,并且无法将日期字段保存到数据库中。我查字段格式和数据库表的格式设置为“日期/时间” 这里是我有:更新DataGridView日期单元格到数据库不匹配错误Vb.net

昏暗的SQL作为字符串

Try 
     For i As Integer = 0 To dataAddemdumView.RowCount - 1 

      sql = "UPDATE MasterRecordsT SET Fecha = '" & dataAddemdumView.Rows(i).Cells("Fecha").Value & "', Pass = " & dataAddemdumView.Rows(i).Cells("Pass").Value & ", Fail = 
      " & dataAddemdumView.Rows(i).Cells("Fail").Value & ", Employee = " & dataAddemdumView.Rows(i).Cells("Employee").Value & ", Gig = " & dataAddemdumView.Rows(i).Cells("Gig").Value & ", GigNotes = 
      '" & dataAddemdumView.Rows(i).Cells("GigNotes").Value & "', Department = '" & dataAddemdumView.Rows(i).Cells("Department").Value & "' WHERE ID = " & dataAddemdumView.Rows(i).Cells("ID").Value & "" 

      cmd = New OleDbCommand(sql, con) 
      con.Open() 
      da.UpdateCommand = con.CreateCommand() 
      da.UpdateCommand.CommandText = sql 
      da.UpdateCommand.ExecuteNonQuery() 
      con.Close() 
     Next 
    Catch ex As Exception 
     con.Close() 
     'MessageBox.Show("OPEX Quality encountered a problem, Try to reopen the application to solve issues", "Error 0002", MessageBoxButtons.OK, MessageBoxIcon.Error) 
    End Try 

非常感谢你的帮助你们!

+0

更新要简单得多比 - 使用一个DataTable作为数据源和一个DataAdapter来'。更新()'它。 SQL字符串中的滴答转换为文本,这可能会导致数据类型不匹配,因为并非数据库中的所有内容都是字符串通常 – Plutonix

+0

恐怕这种方法不起作用,因为DGV的源代码来自3个表的查询我只需要将这些字段保存到一个主表中。我的DGV有18个字段。 – JCLD

+1

然后尝试使用参数。 – Bugs

回答

0

所以这将是最后的代码和它的作品

昏暗的SQL作为字符串从DGV

Try 
     For i As Integer = 0 To dataAddemdumView.RowCount - 1 

      If Not dataAddemdumView.Rows(i).Cells("Fecha").Value Is DBNull.Value Then 
       sql = "UPDATE MasterRecordsT SET Fecha = '" & dataAddemdumView.Item("Fecha", i).Value & "', Pass = " & dataAddemdumView.Rows(i).Cells("Pass").Value & ", Fail = 
      " & dataAddemdumView.Rows(i).Cells("Fail").Value & ", Employee = " & dataAddemdumView.Rows(i).Cells("Employee").Value & ", Gig = " & dataAddemdumView.Rows(i).Cells("Gig").Value & ", GigNotes = 
      '" & dataAddemdumView.Rows(i).Cells("GigNotes").Value & "', Department = '" & dataAddemdumView.Rows(i).Cells("Department").Value & "' WHERE ID = " & dataAddemdumView.Rows(i).Cells("ID").Value & "" 
       cmd = New OleDbCommand(sql, con) 
       con.Open() 
       da.UpdateCommand = con.CreateCommand() 
       da.UpdateCommand.CommandText = sql 
       da.UpdateCommand.ExecuteNonQuery() 
       con.Close() 
      End If 
     Next 
    Catch ex As Exception 
    con.Close() 
    MsgBox(ex.Message) 
     'MessageBox.Show("OPEX Quality encountered a problem, Try to reopen the application to solve issues", "Error 0002", MessageBoxButtons.OK, MessageBoxIcon.Error) 
    End Try 
相关问题