【发布时间】:2013-10-28 17:55:40
【问题描述】:
背景:
这里是新手 - 无论如何,我正在构建一个 c# 表单应用程序,它解析文本文件中的数据。我已将纺织品数据存储在一个列表中。
问题:
我不知道如何用这些数据填充一个 sqlite 表。如何将我的列表数据传输到我的 sqlite 表的列中?
SQlite 代码: (以下取自finisar)
private void button4_Click(object sender, EventArgs e)
{
// [snip] - As C# is purely object-oriented the following lines must be put into a class:
// We use these three SQLite objects:
SQLiteConnection sqlite_conn;
SQLiteCommand sqlite_cmd;
SQLiteDataReader sqlite_datareader;
// create a new database connection:
sqlite_conn = new SQLiteConnection("Data Source=database.db;Version=3;New=True;Compress=True;");
// open the connection:
sqlite_conn.Open();
// create a new SQL command:
sqlite_cmd = sqlite_conn.CreateCommand();
// Let the SQLiteCommand object know our SQL-Query:
sqlite_cmd.CommandText = "CREATE TABLE test (id integer primary key, text varchar(100));";
// Now lets execute the SQL ;D
sqlite_cmd.ExecuteNonQuery();
// Lets insert something into our new table:
sqlite_cmd.CommandText = "INSERT INTO test (id, text) VALUES (1, 'Test Text 1');";
// And execute this again ;D
sqlite_cmd.ExecuteNonQuery();
// ...and inserting another line:
sqlite_cmd.CommandText = "INSERT INTO test (id, text) VALUES (2, 'Test Text 2');";
// And execute this again ;D
sqlite_cmd.ExecuteNonQuery();
// But how do we read something out of our table ?
// First lets build a SQL-Query again:
sqlite_cmd.CommandText = "SELECT * FROM test";
// Now the SQLiteCommand object can give us a DataReader-Object:
sqlite_datareader = sqlite_cmd.ExecuteReader();
// The SQLiteDataReader allows us to run through the result lines:
while (sqlite_datareader.Read()) // Read() returns true if there is still a result line to read
{
// Print out the content of the text field:
string data = sqlite_datareader.GetString(1);
MessageBox.Show(data);
}
// We are ready, now lets cleanup and close our connection:
sqlite_conn.Close();
}
所以这是我想将列表数据传输到我的 sqlite 表的地方: sqlite_cmd.CommandText = "INSERT INTO test (id, text) VALUES (1, 'Test Text 1');";
我不知道具体在哪里,也不知道如何在这里实现foreach循环语法。
谢谢
【问题讨论】:
-
您应该使用参数并重用相同的命令。你应该在哪里使用
foreach???不是很明显吗? -
正如我所说,这里是菜鸟,所以并不明显。我以为我会使用 foreach 继续将列表值输入到 sql 表中。