2014-05-13 3 views
0

그래서이 개인 프로젝트를 수행하면서 사용자 (이 경우)가 추가, 삭제, 삭제할 수있는 프로그램을 만들려고합니다. 필요한 정보를 기입 할 수있는 양식을 통해 데이터베이스를 업데이트하십시오.Access 데이터베이스에 레코드를 추가 할 때 커밋 버튼이 작동하지 않습니다.

일반적인 생각을하기 위해 기본 폼에는 데이터 그리드보기가 있으며,로드를 클릭하면 데이터베이스가 레코드로 표시됩니다. 나는 그 모든 것을 얻었습니다. 그러나 어디에 내가 문제가 정보를 적어 기록 양식을 추가하는 Form1에 있고 그것을 채우고 난 후 MS Access 데이터베이스에 쓸 수 있도록 "커밋"단추를 누르십시오. 이것은 내부 커밋 단추가있는 코드의 일반적인보기입니다. 참고로 Profiles는 mdb 파일의 이름이고 Contacts는 recod를 포함하는 테이블의 이름입니다. 이를 Form1_Load이 다음 코드를 추가 할 필요가 있는지 모르겠다 무엇

Imports System.Data.OleDb 
Private Sub btnCommit_Click(sender As Object, e As EventArgs) Handles btnCommit.Click 
If inc <> 0 Then 
     Dim cb As New OleDb.OleDbCommandBuilder(da) 
     Dim dsnewrow As DataRow 

     dsnewrow = ds.Tables("Profiles").NewRow() 

     dsnewrow.Item("First_Name") = FirstNameText.Text 
     dsnewrow.Item("Last_Name") = LastNameText.Text 

     ds.Tables("Profiles").Rows.Add(dsnewrow) 
     da.Update(ds, "Profiles") 

     Main.DataGridView1.Refresh() 


     MsgBox("New Record added") 

    End If 
End Sub 

은 다음과 같습니다

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    Try 
     dbProvider = "PROVIDER=Microsoft.Jet.OLEDB.4.0;" 
     dbSource = "Data Source= path to the mdb file" 


     con.ConnectionString = dbProvider & dbSource 

     con.Open() 
     Sql = "SELECT * FROM Contacts" 
     da = New OleDb.OleDbDataAdapter(sql, con) 
     da.Fill(ds, "Profiles") 

     con.Close() 
     Maxrows = ds.Tables("Profiles").Rows.Count 
     inc = -1 
    Catch ex As Exception 
     MessageBox.Show(ex.Message) 
    End Try 
End Sub 

방금 ​​참조 선언은 다음과 같습니다

Dim con As New OleDb.OleDbConnection 
Dim da As OleDb.OleDbDataAdapter 
Dim ds As New DataSet 
Dim dbProvider, dbSource As String 
Dim sql As String 
Dim Maxrows As Integer 

구문 오류 이 줄의 INSERT INTO 문에서 : da.Update(ds, "Profiles")

도움이 될 것입니다. 감사합니다. 불행히도 며칠 동안 :/

명확히하기 위해 추가 정보가 필요한 경우 알려주십시오.

+0

데이터베이스에 첫 번째 성보다 더 많은 컬럼이 있습니까? – Plutonix

+0

예, 있습니다. 주소 1, 주소 2, 우편 번호, 전화 번호, 이메일 주소는 – Reginald

답변

0

시도해보십시오.

cb.QuotePrefix = "[" 
cb.QuoteSuffix = "]" 

그 도움을합니까 :

Dim cb As New OleDb.OleDbCommandBuilder(da) 

후 당신의 btnCommit_Click 방법은 다음과 같은 추가?

+0

입니다. 물론 오류 메시지는 없지만 아무 일도 일어나지 않습니다 : / – Reginald

관련 문제