2014-09-22 2 views
1

Access DB에 연결되는 VB 2013 Express에서 레거시 시스템 다시 작성. 나는 데이터 연결을 설정하고 모든 테이블을 가진 데이터 세트를 가지고있다. 코드는 다음을 수행해야합니다.VB 2013 Access DB Dataset

"추출"테이블의 모든 행을 삭제하십시오. 새 데이터를 읽고 구문 분석하십시오. "추출"테이블에 새 데이터를 씁니다.

필자는 읽기 및 구문 분석 부분을 완료했지만 삭제 및 쓰기 부분에 도움이 필요합니다. 내가 시도하는 것은 아무것도 작동하지 않는 것 같습니다.

이 내가 무엇을 시도했다입니다 : 당신은 System.Data.SqlClient를 사용하려고

Dim sqlConnection1 As New System.Data.SqlClient.SqlConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\CLI_CRVM.accdb") 
Dim cmd As New System.Data.SqlClient.SqlCommand() 
cmd.CommandType = System.Data.CommandType.Text 
cmd.CommandText = "DELETE FROM extract" 
cmd.Connection = sqlConnection1 
+0

아,이 포럼을 올바르게 사용할 수 없습니다. 나는 이것을 시도했다 : Dim sqlConnection1 As New System.Data.SqlClient.SqlConnection ("Provider = Microsoft.ACE.OLEDB.12.0; 데이터 소스 = | DataDirectory | \ CLI_CRVM.accdb") Dim cmd As New System.Data.SqlClient .SqlCommand cmd.CommandType = System.Data.CommandType.Text cmd.CommandText = "추출물에서 삭제" cmd.Connection = sqlConnection1 – user3850146

+0

나는 하나의 행이 방법으로 삭제 시도 : '새을 DataSet1() 딤섬으로 딤섬을 DataSet1 ExtractTableAdapter as New DataSet1TableAdapters.extractTableAdapter() extractTableAdapter.Delete (1) extractTableAdapter.Update() ' – user3850146

+0

MS Access로 작업 할 때 모든 SQL 명령이';'로 끝나야합니다. IE, "추출물에서 삭제;". 그들은 그것 없이는 실행하지 않을 것입니다. – Steve

답변

2

하지만 마이크로 소프트 SQL 서버 데이터베이스 작업을 위해 특별히입니다. 귀하의 질문에있는 예제 코드는 실패합니다

키워드는 지원되지 않습니다 : '공급자'.

Access 데이터베이스에 대한 OLEDB 연결의 경우 System.Data.OleDb을 사용하십시오.

+0

도움을 주셔서 감사합니다 - 그게 핵심이었습니다. 그러나 코드가 실행되고 ExecuteNonQuery에서 '10'이 반환되면 행이 삭제되지 않습니다. DB에서 SQL을 수동으로 실행할 수 있습니다. 어떤 아이디어? – user3850146

+0

@ user3850146 'OleDbConnection'이 제대로 닫혔는지 확인하십시오. [Using] (http://msdn.microsoft.com/en-ca/library/htd05whh.aspx) 블록 내에서 연결에 사용할 수있는 좋은 폼으로 간주됩니다. 나는 명시 적으로 .Close()를 선호하지만 다른 사람들은 Using 블록의 끝이 자동으로 연결을'.Close()'한다고 주장한다. –

+0

다음은 내가 가지고있는 것입니다. Dim sqlConnection As 새 System.Data.OleDb.OleDbConnection ("Provider = Microsoft.ACE.OLEDB.12.0; 데이터 원본 = | DataDirectory | \ CLI_CRVM.accdb") Dim cmd As New System .CommandType = System.Data.CommandType.Text cmd.Connection = SQLConnection을 어둡게 intRC 정수 sqlConnection.Open() intRC cmd.ExecuteNonQuery =() 'sqlConnection.Close()를 있는 MsgBox (intRC) – user3850146