2013-05-25 4 views
1

이 문제를 잠시 동안 살펴 봤는데 내가 잘못하고있는 것을 볼 수 없습니다.DataSet에서 실제 데이터베이스로의 변경 내용을 저장하는 방법

나는 물리적 데이터베이스 (| DataDirectory를 | \ MyDatabase.accdb데이터 소스 = ')에 데이터 집합의 변경 (ds.Tables ("로그인"))을 저장합니다. 하지만 제대로 작동하지 않습니다. 데이터가 실제 데이터베이스에 저장되지 않았습니다.

어떤 아이디어로 해결할 수 있습니까 ??

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles txtUsername.Click 
    Dim ds As New DataSet() 
    Dim dt As DataTable 
    ds.Tables.Add(New DataTable("Login")) 
    Dim connStr As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='|DataDirectory|\MyDatabase.accdb'" 
    Dim sqlStr As String = "SELECT * FROM Login" 
    Dim dataAdapter As New OleDb.OleDbDataAdapter(sqlStr, connStr) 
    dataAdapter.Fill(ds.Tables("Login")) 

    dt = ds.Tables("Login") 

    Dim dr As DataRow 
    dr = dt.NewRow() 
    dr("Username") = txtUserName.Text 
    dr("Password") = txtPassword.Text 

    dt.Rows.Add(dr) 
    ds.AcceptChanges() 
    dataAdapter.Update(ds.Tables("Login")) 
End Sub 
+0

먼저 올바른 데이터베이스를 찾고 있습니까? | DataDirectory | IDE (또는 ASP.NET 용 APP_DATA) 내에서 실행될 때 BIN \ DEBUG 폴더로 해석됩니다. 둘째, 업데이트를 호출 할 때 오류 메시지가 표시 되었습니까? – Steve

+1

그리고 UPDATE를 호출하기 전에 AcceptChanges를 제거하십시오. – Steve

답변

관련 문제