2014-11-14 3 views
0

내 코드에 어떤 문제가 있습니까? 업데이트는 db에 저장되지 않습니다.행이 변경된 후 SQLite 데이터베이스가 업데이트되지 않습니다.

SQLiteConnection connection = new SQLiteConnection(string.Format(@"Data Source={0}\statistik.s3db",Application.StartupPath)); 
connection.Open(); 
SQLiteDataAdapter db = new SQLiteDataAdapter("SELECT * FROM log WHERE Typ=1", connection); 
DataSet ds = new DataSet(); 
db.Fill(ds); 
SQLiteCommandBuilder builder = new SQLiteCommandBuilder(db); 

foreach (DataRow row in ds.Tables[0].Rows) 
{ 
     row["Message"] = "myupdatedmessage"; // IS NOT SAVED! 
} 
ds.AcceptChanges(); 
db.UpdateCommand = builder.GetUpdateCommand(); 
db.Update(ds.Tables[0]); 
connection.Close(); 

답변

2

일반적인 오류입니다.

당신은 변하지과 그 후 데이터 집합 테이블에이 라인을

ds.AcceptChanges(); 

호출 AcceptChanges에 세트 모든 행을 제거해야합니다 (아마도 Microsoft는 오해 명명 문제에 대한 면역), 업데이트 방법은 없습니다 업데이트 할 것을 찾으십시오.

Application.StartupPath은 디버깅 할 때 BIN \ DEBUG 폴더 (또는 x86 변형)를 가리키고 있으므로 찾고있는 데이터베이스 파일과 다른 데이터베이스 파일에 쓰고있을 가능성이 있습니다 에서 (프로젝트 폴더에있는 하나?).

+0

감사합니다. 10 분 안에 대답 한계를 받아 들일거야. – daniel

관련 문제