我想將項目從C#中的LIST傳輸到SQLite中的TABLE。我根本不知道如何做到這一點,直到有人建議我用的參數:將sqlite int錶轉換爲字符串,然後輸入列表
這是我最初的嘗試:(當然,這是錯誤的)
SQLiteConnection sqlite_conn;
SQLiteCommand sqlite_cmd;
sqlite_conn = new SQLiteConnection("Data Source=database.db;Version=3;New=True;Compress=True;");
sqlite_conn.Open();
sqlite_cmd = sqlite_conn.CreateCommand();
sqlite_cmd.CommandText = "CREATE TABLE table1 (Seq integer primary key, Field integer , Description integer);";
sqlite_cmd.ExecuteNonQuery();
for (int i = 0; i < 500; i+=3)
{
// Lets insert something into our new table:
sqlite_cmd.CommandText = "INSERT INTO table1 (Seq, Field, Description) VALUES (list[i], list[i+1], list[i+2]);"; THIS IS WHERE PROBLEM OCCURS!
sqlite_cmd.ExecuteNonQuery();
}
sqlite_conn.Close();
}
這是一個用戶建議我應該做什麼?(加參數和東西):
sqlite_cmd.CommandText = "INSERT INTO table1 (Seq, Field, Description) VALUES (@p1, @p2, @p3)";
sqlite_cmd.Parameters.AddWithValue("@p1", 0); // dummy initial values
sqlite_cmd.Parameters.AddWithValue("@p2", 0);
sqlite_cmd.Parameters.AddWithValue("@p3", 0);
for (int i = 0; i < 500; i+=3)
{
sqlite_cmd.Parameters["@p1"].Value = Convert.ToInt32(list[i]);
** sqlite_cmd.Parameters["@p2"].Value = Convert.ToInt32(list[i+1]); ERROR OCCURS HERE
sqlite_cmd.Parameters["@p3"].Value = Convert.ToInt32(list[i+2]);
sqlite_cmd.ExecuteNonQuery();
}
問題:
在for循環中,如2星所示,我收到一條錯誤消息:「輸入字符串格式不正確。」
我試着看看以前的帖子有這個錯誤的解決方案,但沒有太多的運氣到目前爲止。
我覺得我的錯誤是,名單最初具有的字符串值,但後來我試着輸入進去整數sqlite的列(請參閱創建原碼錶語句)
由於原列表值都是字符串,會怎樣我只是做一個表insqlite,它存儲我的列表中的STRING值,並避免錯誤?
有人可以幫我準確的語法嗎?
很確定你的問題只是索引方法無法添加i + 1。如果你將這些加在括號外面,你可能會擁有它。 – paqogomez
也,你可能想做++而不是i + 1。你每循環增加3次for循環,並且可以簡單地在循環內遞增我。 – paqogomez
嘗試更改列表只有[i],但仍然沒有運氣 – user2788405