私は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;
}
}