2013-11-04 2 views
0

SqlCeDataReader을 사용하여 SQL Server CE 데이터베이스의 테이블에서 데이터를 읽으려고하면 다음과 같은 문제가 발생하지만 테이블에 새 값을 삽입하려고하면 다음과 같은 문제가 발생합니다. 작동하지 않습니다.SQL Server CE 데이터베이스에 삽입하는 ADO.NET + Winform

내 접근 방식은 conn이며 conn.Open()OnFormLoad 이벤트 처리기에서 글로벌입니다.

conn = new SqlCeConnection("Data Source = Database1.sdf; Persist Security Info=False"); 
conn.Open(); 

SqlCeCommand cmd = conn.CreateCommand(); 
cmd.CommandText =string.Format("INSERT INTO Emails(Email) VALUES('{0}')", textBox2.Text); 

try 
{ 
    cmd.ExecuteNonQuery(); 
} 
catch (Exception ex) 
{ 
    MessageBox.Show(string.Format("error type {0}", ex.GetType().ToString())); 
} 

당연히 데이터베이스 쿼리를 통해이 삽입을 수동으로 실행하려고하면 정상적으로 작동하지만 코드에서는 작동하지 않습니다. 그리고 아무 예외도 잡히지 않습니다 ...

+0

** 경고 ** - 귀하의 코드는 [SQL 주입] (http://en.wikipedia.org/wiki/SQL_injection)에 취약합니다. – Brian

답변

0

ypur bin/debug 폴더에서 데이터가있는 데이터베이스 파일 복사본을 찾습니다. 해결 방법은 프로젝트에 데이터베이스 파일을 포함시키지 말고 연결 문자열에 전체 경로를 사용하는 것입니다.