2011-02-24 3 views
1
아래의 코드는

데이터베이스의 테이블 및 삽입 값을 만들 수 없습니다

Imports System.Data.SQLite 
Public Class Form1 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
     SQLiteConnection.CreateFile("c:\mydatabasefile.db3") 
     Dim sqlConnection As New SQLite.SQLiteConnection() 
     Dim sqlCommand As New SQLiteCommand 

     sqlConnection.ConnectionString = "Data Source=c:\mydatabasefile.db3" 
     sqlConnection.Open() 
     sqlCommand.CommandText = "CREATE TABLE MyTable(EmpID INTEGER PRIMARY KEY ASC, FirstName VARCHAR(25));" 
     sqlCommand.CommandText = "INSERT INTO MyTable(FirstName) VALUES('James');" 
     sqlConnection.Close() 
    End Sub 
End Class 

그러나 일부 값 "제임스"할당 된 열 "FIRSTNAME"와 데이터베이스와 테이블을 작성한다고 가정한다

이유는 앱이 크기가 0 바이트 인 데이터베이스 만 생성하기 때문입니다. 왜 작동하지 않는거야? SQLite ADO.NET Provider를 사용하고 있습니다. , VS 2010, 윈폼 당신은 결코 SQL을 실행하지 않습니다

답변

2

Public Class Form1 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
     SQLiteConnection.CreateFile("c:\mydatabasefile.db3") 
     Dim sqlConnection As New SQLite.SQLiteConnection() 
     Dim sqlCommand As New SQLiteCommand("", sqlConnection) 

     sqlConnection.ConnectionString = "Data Source=c:\mydatabasefile.db3" 
     sqlConnection.Open() 
     sqlCommand.CommandText = "CREATE TABLE MyTable(EmpID INTEGER PRIMARY KEY ASC, FirstName VARCHAR(25));" 
     sqlCommand.ExecuteNonQuery() 
     sqlCommand.CommandText = "INSERT INTO MyTable(FirstName) VALUES('James');" 
     sqlCommand.ExecuteNonQuery() 
     sqlConnection.Close() 
    End Sub 


End Class 

당신은 또한 당신은 또한 당신을 수정해야한다고

sqlCommand.Connection = sqlConnection 을 말로 할 수있는 명령 연결을 설정해야 할 명령

+0

아, 수행 방법을 알려주시겠습니까? 지난 18 시간 동안 삽입 업데이트 및 삭제 기능을 수행하려고 시도한 것입니다. –

+0

제 편집을보세요. info from http://www.devart.com/dotconnect/sqlite/docs/Devart.Data.SQLite~Devart.Data.SQLite.SQLiteCommand.html – msarchet

+0

"이 명령과 연결된 연결 없음"오류가 발생합니다. VS는 첫 번째'sqlCommand.ExecuteNonQuery()'를 강조 표시합니다. –

1

sqlCommands를 실행하지 마십시오. .ExecuteNonQuery()를 사용하여 데이터베이스에 무언가를 가져와야합니다. 그렇지 않으면 아무 것도 수행되지 않습니다.

+0

그래서 각 쿼리에 대해 호출해야합니다. –

+0

예. 각 쿼리를 실행하고 싶지 않습니까? – Martijn

1

명령을 통해 사용할 연결을 알 수 있습니다. sqlCommand.Connection = sqlConnection

관련 문제