【发布时间】:2012-09-08 10:44:39
【问题描述】:
我正在玩弄 SQL lite 并学习它。
我有一个名为 People 的表,我有一些方法可以连接到数据库并执行一些操作,例如显示所有信息。
现在我正在尝试插入一些数据,这对我来说有点奇怪。我有这个方法:
private void ExecuteQuery(string txtQuery)
{
SetConnection();
sql_con.Open();
sql_cmd = sql_con.CreateCommand();
sql_cmd.CommandText = txtQuery;
sql_cmd.ExecuteNonQuery();
sql_con.Close();
}
查看所有数据我有这个方法:
private void LoadData()
{
SetConnection();
sql_con.Open();
sql_cmd = sql_con.CreateCommand();
string CommandText = "SELECT * FROM People";
DB = new SQLiteDataAdapter(CommandText, sql_con);
DS.Reset();
DB.Fill(DS);
DT = DS.Tables[0];
dataGridView1.DataSource = DT;
sql_con.Close();
}
当我插入一些数据,然后我调用LoadData(),我可以看到我所做的所有更改。
关闭程序后,再次打开并调用LoadData(),我看不到之前插入的新信息。
我得到了一些我使用 SQL lite GUI 应用程序插入的数据,每次调用 LoadData() 方法时我都能看到这些数据,但不是我的。
我是否需要做其他事情来确保 SQL lite 保存所有数据?
编辑:这就是我插入数据的方式,mybee 问题出在此处?
string insetCommand = "INSERT INTO People Values(2,'" + textBox1.Text + "')";
EDIT2:我的 connectionString 方法
public static string connectionString
{
get
{
string database =
//AppDomain.CurrentDomain.BaseDirectory + "..\\..\\Database\\ImageLib.s3db";
AppDomain.CurrentDomain.BaseDirectory + "\\DataBase\\myTable2";
string connectionString =
@"Data Source=" + Path.GetFullPath(database) + ";Version=3;";
return connectionString;
}
}
【问题讨论】:
-
您是否有 SQLite 数据库作为 Visual Studio 项目的一部分?
-
我不确定我是否理解,我该如何检查?
-
您应该在某处使用 .db3 文件(或等效文件)。这是否包含在 VS 解决方案中,或者您只是将其作为单独的文件加载?
标签: c# sql winforms sqlite sql-insert