运行(调试)程序后重新设置数据库

时间:2013-08-08 22:28:18

标签: visual-studio-2010

这是我第一次在这里提问,但我对此感到十分困惑。我目前正在制作一个小型调度应用程序作为辅助项目,但是在运行程序后我一直遇到这个错误。错误是我对我的数据库进行了一些更改,比如添加一个Day_Night_Shift列,但是在运行程序之后它有时会删除该行。它就像它恢复到旧的数据库。我目前正在使用带有accdb文件的访问数据库。

到目前为止,我在程序中执行了一些insert和select语句。 第一个是select语句,它转到此函数来填充dgv框。

Public Function executeQuery(ByVal querystr As String) As DataTable
'opens accdb database file and fills datatable with wanted query. returns datatable for use. 

    Dim dt As New DataTable

    Using da As New OleDb.OleDbDataAdapter(querystr, connstr) 
        da.Fill(dt)
        da.Dispose()

    End Using

    Return dt
End Function

我使用的另一个功能是插入

 Public Function InsertNewEmp(ByVal firstname As String, ByVal lastname As String, ByVal position As String, ByVal shift As String) As String

 Dim insertstring As String = "INSERT INTO Tbl_Employee ([Employee First Name], [Employee Last Name], [Position ID], [Day or night]) VALUES ('" & _
  firstname & "', '" & lastname & "', " & position & ", '" & shift & "') "

 Try
        cnnOLEDB = New OleDbConnection(connstr)
        cnnOLEDB.Open()
        cmdOLEDB = New OleDbCommand(insertstring, cnnOLEDB)
        cmdOLEDB.ExecuteNonQuery()
        cnnOLEDB.Close()
    Catch ex As Exception
        Return "insert failed," & ex.Message
    End Try

Dim data As DataTable = executeQuery("SELECT [Employee ID] from Tbl_Employee where [Employee First Name] = '" & firstname & _
                                         "' and [Employee Last Name] = '" & lastname & "' and [Position ID] = " & position & _
                                         " and [Day or Night] = '" & shift & "'")

Dim successmsg As String
    Dim rows() As DataRow = data.Select()
    Dim lastrow As Integer = rows.GetUpperBound(0)
    successmsg = (rows(rows.GetUpperBound(0))(0))



    Return "insert successful Employee id=" & successmsg

如果有人能够提供帮助,我们将不胜感激。它一直没有重置数据库,但是当我试图调试等时它有点烦人。

提前谢谢

1 个答案:

答案 0 :(得分:0)

好的,首先:它不是一个真正的错误。 当你启动项目时会发生什么,visualBasic将数据库加载到容器中。它将添加,编辑和/或删除的任何数据保存并存储到此容器中。一旦你关闭visual basic并再次打开它就消失了。我自己也遇到过这个问题,直到我尝试完成并安装程序之前一直感到困惑,所有这一切似乎都很好。

这根本没什么大不了的,但我会建议远离自动生成的东西并使用正确的SQL,这样你就没有这个问题并且可以更好地控制你的数据库