2010-06-14 3 views
10

C# 응용 프로그램에서 sqllite db에 연결하려고합니다. 전에는 SQLLite로 일 해본 적이 없다.C#에서 SQLite db 파일에 어떻게 연결합니까?

var connectionString = @"data source='C:\TestData\StressData.s3db'"; 
      connection = new SQLiteConnection(connectionString); 
      connection.Open(); 

나는 다음과 같은 예외가 얻을 연결 열려고 :

System.NotSupportedException: The given path's format is not supported. 
    at System.Security.Util.StringExpressionSet.CanonicalizePath(String path, Boolean needFullPath) 
    at System.Security.Util.StringExpressionSet.CreateListFromExpressions(String[] str, Boolean needFullPath) 

내가 잘못하고있는 중이 야 무엇을?

덕분에 ..

는 업데이트 :

내가 '데이터 소스를'데이터 소스 '로 변경 나에게 제안. 이제 새로운 오류가 나타납니다.

변경 후이 오류가 발생합니다. System.ArgumentException : 데이터 소스를 비워 둘 수 없습니다. 사용 : 메모리 : System.Data.SQLite.SQLiteConnection.Open()에서 메모리 내 데이터베이스를 엽니 다.

더 이상의 제안 사항이 있습니까?

+1

연결 문자열 DataSource 매개 변수에서 어포 스트로피를 제거해보십시오.'@ "DataSource = c : \ TestData \ StressData.s3db"'. –

답변

13

DataSource이있어해야

"data source=c:\TestData\StressData.s3db; Version=3;" 

는 '버전'속성처럼 보이는 것은 선택 사항이 아니다. 흥미로운 점은 .NET 프로 바이더가 디자이너 속성 창에 이것을 표시하지 않는다는 것입니다.

+2

SQLiteConnectionStringBuilder 객체를 사용하여 연결 문자열 (문자열로 하드 코딩하는 대신)을 빌드하면이 같은 문제의 대부분을 알 수 있습니다 (애매한 매개 변수 이름, 오타). 버전 속성에 관해서는 적어도 내 SQLite는 필요하지 않습니다. –

1

this에 따르면, data source이 ..

+0

Doh! 그 쪽이 맞는 거 같아요. 이 변경 후 새 오류 : System.ArgumentException : 데이터 원본을 비울 수 없습니다. 사용 : 메모리 : 메모리 내 데이터베이스를 열려면 System.Data.SQLite.SQLiteConnection.Open() 인수를 제공해야합니까? – Nick

+0

@Nick, 나는 이것을 사용한 적이 없지만, 문서에서 그것은 새로운 SQLiteConnection ("DataSource = C : \ TestData \ StressData.s3db")이어야합니다. 왜 작동하지 않는지 모르겠다. \ –

+1

실제로 '데이터 소스'처럼 보입니다. – Nick

관련 문제