[問題] DataSet、DataTableAdapter 回存資料庫
開發環境:C# 2010
資料庫:SQLite (SQLite.Net)
問題在製作可增、刪、改的DataGridView遇到
以下次程式碼片段
宣告&初始
SQLiteConnectionStringBuilder connBuilder;
SQLiteConnection conn;
SQLiteDataAdapter adapter;
DataSet ds;
private void SettingUserManage_Load(object sender, EventArgs e)
{
SQLiteCommand cmd = new SQLiteCommand();
ds = new DataSet();
connBuilder = new SQLiteConnectionStringBuilder();
connBuilder.DataSource = "Data/database.db3";
conn = new SQLiteConnection(connBuilder.ToString());
cmd.Connection = conn;
cmd.CommandText = "SELECT * FROM Users";
cmd.CommandType = CommandType.Text;
adapter = new SQLiteDataAdapter(cmd);
adapter.Fill(ds, "Users");
usersGridView.DataSource = ds.Tables["Users"];
}
問題
private void userGridView_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{/*當編輯結束時*/
SQLiteCommand cmd = new SQLiteCommand();
/*取得編輯資料行*/
DataGridViewRow row = usersGridView.Rows[e.RowIndex];
string uid = row.Cells["UserID"].Value.ToString();
string pass = row.Cells["Password"].Value.ToString();
string name = row.Cells["UserCName"].Value.ToString();
bool admin = (bool)row.Cells["IsAdmin"].Value;
/*以下試圖使用Adapter的Update功能才回存*/
/*註解部分為成功的方法1*/
/*根據查詢到的資料實作方法2,無法寫回資料庫*/
//conn.Open(); //--方法1
cmd.Connection = conn;
cmd.CommandText = String.Format("UPDATE Users SET Password='{0}', UserCName='{1}', IsAdmin='{2}' WHERE UserID='{3}'", pass, name, admin, uid);
//cmd.ExecuteNonQuery(); //--方法1
//conn.Close(); //--方法1
//MessageBox.Show(adapter.AcceptChangesDuringUpdate.ToString());
adapter.UpdateCommand = cmd; //--方法2
adapter.Update(ds.Tables["Users"]); //--方法2
ds.AcceptChanges(); //--方法2
}
麻煩高手解惑~THANKS MUCH MUCH
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.85.58.90
※ 編輯: mosluce 來自: 219.85.58.90 (11/18 10:55)
推
11/18 12:23, , 1F
11/18 12:23, 1F
推
11/18 12:24, , 2F
11/18 12:24, 2F
→
11/18 12:24, , 3F
11/18 12:24, 3F
→
11/18 12:25, , 4F
11/18 12:25, 4F
→
11/18 12:26, , 5F
11/18 12:26, 5F
→
11/18 12:27, , 6F
11/18 12:27, 6F
→
11/18 13:04, , 7F
11/18 13:04, 7F
→
11/18 13:05, , 8F
11/18 13:05, 8F
推
11/18 14:17, , 9F
11/18 14:17, 9F
→
11/18 16:20, , 10F
11/18 16:20, 10F
討論串 (同標題文章)