删除&插入问题以使用适配器访问数据库

时间:2014-12-31 07:33:42

标签: vb.net visual-studio-2010

我正在放弃...我正在使用带有连接的Access数据库的DataAdapters,(测试好了),数据集得到了很好的更新,但位于我的项目根文件夹中的数据库永远不会更新我尝试插入或删除。这是我正在使用的删除;

Private Sub btnDeleteJob_Click(sender As Object, e As System.EventArgs) Handles btnDeleteJob.Click
    Dim delJobID = ComboBox2.SelectedValue
    Dim delJobRowAdpt As New DCGDataSetTableAdapters.MainTableAdapter
    Dim delJobRow As DCGDataSet.MainRow
    Dim intDelete As Integer
    delJobRow = DCGDataSet.Main.FindByID(delJobID)
    delJobRow.Delete()
    intDelete = delJobRowAdpt.Update(DCGDataSet.Main)
    If intDelete = 1 Then
        MessageBox.Show("Job Deleted")
        'comboClear()
        clearTabOne()
        'ComboBox2.SelectedValue = -1
        Me.MainTableAdapter.Fill(Me.DCGDataSet.Main)
    Else
        MessageBox.Show("Job Failed to Delete")
    End If
    ComboBox2.SelectedValue = -1
End Sub

我的插入代码;

Private Sub btnAddNew_Click(sender As Object, e As System.EventArgs) Handles btnAddNew.Click
    ' Add new Job to the database
    Dim newJobRow As New DCGDataSetTableAdapters.MainTableAdapter
    Dim intInsert As Integer
    Dim jobText = txtBoxAddNewJob.Text
    intInsert = newJobRow.InsertJob(jobText) 'InsertJob Adapter = INSERT INTO `Main` (`tbl_Job_Name`) VALUES (?)
    If intInsert = 1 Then
        MessageBox.Show("New Job Added")
        ' Update the comboBox values
        newJobRow.Fill(DCGDataSet.Main)
        'Me.MainTableAdapter.Fill(Me.DCGDataSet.Main)
        'newJobRow.Insert(jobText)
        newJobRow.Update(DCGDataSet.Main)
        'DCGDataSet.AcceptChanges()
        txtBoxAddNewJob.Text = ""
        clearTabOne() ' Label5.Visible = False     ComboBox3.Visible = False
    Else
        MessageBox.Show("Job Not Added")
    End If
End Sub

这是我的dataSet enter image description here

如果我关闭我的应用程序并在我的Bin / Debug文件夹中打开数据库文件,则会有更改,但只有在我再次运行应用程序之后。我知道我很亲近,但我被困住了,我需要另一双眼睛......

2 个答案:

答案 0 :(得分:1)

我想当你将数据库添加到项目时,你已经允许Visual Studio创建数据库的副本。

请测试此解决方案:从项目中删除数据库并重新添加。这一次,在添加的最后一步,当visual studio询问您在解决方案目录中创建数据库副本时,选择

如果您选择YES,则每次运行程序时,都会在Bin / Debug文件夹中创建数据库的新副本,并且您的更改会影响此副本,当您停止执行时,此副本将被删除。

注意:如果你有连接字符串,请不要忘记更正

我希望能帮助你解决这个问题。 如果我的写作不正确,请原谅。我是英语初学者,但我很快就会学到它......

答案 1 :(得分:0)

您需要在项目的根目录中更改数据库文件复制到输出目录属性。该属性的默认设置是“始终复制”。您可能需要的设置是“Copy If Newer”。只有在对数据库进行一些更改并构建项目时,才会从项目根目录复制数据库。现在,如果您在测试运行中进行了一些更改,那么这些更改仍将在您的下一次测试运行中出现。

这家伙有同样的问题:Can I commit changes to actual database while debugging C# in Visual Studio?