我正在玩弄 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;
}
}