【发布时间】:2016-06-28 10:46:05
【问题描述】:
问题 我有一个连接到我的程序的数据库,我知道它连接正确,因为我可以通过其他两种形式访问该数据库。在一种形式中,我将输入的登录详细信息与数据库进行比较,它工作正常,另一种形式的奇怪之处在于,我使用更新语句将新用户添加到表中,并且这些数据在关闭并重新启动应用程序后仍然存在。为了澄清问题是在编辑 dataveiw 中的数据并且单击保存按钮显示为已保存时,此表单上的问题,但是当程序关闭并打开时,此数据不存在。
守则
Imports System.Data
Imports System.Data.OleDb
Imports System.Data.Odbc
Imports System.Data.DataTable
Public Class FrmFinance
Dim provider As String
Dim dataFile As String
Dim connString As String
Dim myConnection As OleDbConnection = New OleDbConnection
Dim ds As DataSet = New DataSet
Dim da As OleDbDataAdapter
Dim tables As DataTableCollection = ds.Tables
Dim varsearch As New BindingSource()
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: This line of code loads data into the 'MasterDBDataSet.Table_usr' table. You can move, or remove it, as needed.
Me.Table_usrTableAdapter.Fill(Me.MasterDBDataSet.Table_usr)
connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Student\Documents\Visual Studio 2010\Projects\MasterDB.accdb"
myConnection.ConnectionString = connString
da = New OleDbDataAdapter("Select [Username], [Surname], [YearGroup] from Table_usr", myConnection)
da.Fill(ds, "Table_usr")
Dim searchveiw As New DataView(tables(0))
varsearch.DataSource = searchveiw
DataGridView1.DataSource = searchveiw
DataGridView1.Refresh()
End Sub
Private Sub ButtSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtSave.Click
Try
TableusrBindingSource.EndEdit()
Table_usrTableAdapter.Update(MasterDBDataSet.Table_usr)
MessageBox.Show("Data Saved")
Catch ex As Exception
MessageBox.Show("Error Saving Data")
End Try
End Sub
Private Sub ButtFilter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtFilter.Click
If Search_username.TextLength > 1 Then
varsearch.Filter = "[Username] = '" & Search_username.Text & "'"
DataGridView1.Refresh()
ElseIf Search_Surname.TextLength > 1 Then
varsearch.Filter = "[Surname] = '" & Search_Surname.Text & "'"
DataGridView1.Refresh()
ElseIf Search_YrGroup.TextLength > 1 Then
varsearch.Filter = "[YearGroup] = '" & Search_YrGroup.Text & "'"
DataGridView1.Refresh()
End If
End Sub
End Class
我包含了整个表格,以防出现我不理解的冲突。当我设置数据源时,我单击“否”以在每次运行时将数据库复制到 bin 中,并且 database.xcd 设置为如果更新但信息在关闭时仍然丢失则复制。非常感谢任何帮助。
【问题讨论】:
-
“另一种形式的奇怪之处在于,我使用更新语句将新用户添加到表中,并且在关闭并重新启动应用程序后此数据仍然存在” - 我'米糊涂。问题是没有被保存(根据您的标题)还是它们正在被保存(根据您的报价)?请edit澄清您的问题。
-
问题是尽管单击了保存按钮,但重新打开表单时,在此表单的 dataveiw 中编辑的数据仍然不存在。另一条评论是关于在同一程序中添加到数据库的不同表单中的数据是持久的。希望澄清的事情。
标签: vb.net ms-access datagridview oledb