0
单按钮和datagridview。如果按钮text1(“编辑数据库”)datagridview读入数据库,如果按钮text2(“ACCEPT CHANGES”)datagridview写入数据库,但后者不能发生,无论我做什么。没有错误只是不更改数据库文件。无法通过DataGridView更新数据库 - 无错
Dim ConnString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=w:\PD_Z.mdb"
Dim SQLString As String = "SELECT * FROM ZARADE"
Dim OleDBConn1 As System.Data.OleDb.OleDbConnection = New System.Data.OleDb.OleDbConnection(ConnString)
Dim DataSet1 As New DataSet()
Dim OleDbDataAdapter1 As System.Data.OleDb.OleDbDataAdapter = New System.Data.OleDb.OleDbDataAdapter(SQLString, OleDBConn1)
OleDBConn1.Open()
OleDbDataAdapter1.Fill(DataSet1, "ZARADE")
DataGridView1.DataSource = DataSet1.Tables("ZARADE")
DataGridView1.Columns.Remove(DataGridView1.Columns(0).Name)
If Button2.Text = "Edit database" Then
DataGridView1.ReadOnly = False
Button2.Text = "ACCEPT CHANGES"
Button2.ForeColor = Color.DarkRed
Button1.Enabled = False
ComboBox1.Enabled = False
Else
Button2.Text = "Edit database"
DataGridView1.ReadOnly = True
Button2.ForeColor = Color.Black
Button1.Enabled = True
ComboBox1.Enabled = True
'Dim cb As New OleDbCommandBuilder(OleDbDataAdapter1) ' THIS ONE DOESN'T WORK
' cb.QuotePrefix = "["
' cb.QuoteSuffix = "]"
' OleDbDataAdapter1.Update(DataSet1.Tables("ZARADE"))
Using con = New OleDbConnection(ConnString) ' THIS ONE DOESN'T WORK TOO
Me.Validate()
OleDbDataAdapter1.Update(DataSet1.Tables("ZARADE"))
DataSet1.AcceptChanges()
End Using
DataSet1.AcceptChanges()
OleDBConn1.Close()
此代码在Button_click事件中。
那么,我该怎么做。我以为首先点击将数据库读入数据网格视图,然后点击写入数据库。你能给我一些建议吗? –
我不明白你要存档的内容...如果你直接在阅读之后编写,将不会有任何改变被写入......标准工作流将从db读取,附加到网格,在网格中进行更改编辑单元格值(这将自动更改为行状态),然后更新到db(例如在按钮单击事件中) – PrfctByDsgn
对不起,我忘了解释。首先点击激活/导入数据到datagridview,并启用datagridview编辑“DataGridView1.ReadOnly = False”,然后我有鼠标点击事件,每一次点击“单元格”放入“X”值或删除它,如果有“X”已经在那了。然后在编辑完成时。再次点击同一个按钮,将datagridview(“X”)的更改写入数据库。上面的代码只是按钮单击事件,它应该填充datagridview并启用它进行编辑,然后再单击将这些更改写入数据库。 我希望我不会感到困惑。 –