0
私はarch linuxでmonodevelopを実行していますが、ローカルデータベースに値を挿入しようとしましたが、ボタンから実行するとアプリケーションが終了します。ファイルが作成され、すべてのフィールドがあります。C#SQLコマンドラインmonodevelop
SqliteConnection m_dbConnection = new SqliteConnection ("Data Source=GOOD_FOOD.sqlite;Version=3;");
m_dbConnection.Open();
int id;
string get = "SELECT LAST(id_client) FROM Clienti";
SqliteCommand comSelect = new SqliteCommand (get, m_dbConnection);
int? getid = (int?)comSelect.ExecuteScalar();
if (getid.HasValue) {
id = Convert.ToInt32(getid) + 1;
} else
{
id = 1;
}
// create account
string create = "INSERT INTO Clienti (id_client, parola, nume, prenume, adresa, email) VALUES (@id, @parola, @nume, @prenume, @adresa, @email)";
SqliteCommand createcmd = new SqliteCommand (create, m_dbConnection);
createcmd.Parameters.AddWithValue("@id", id);
createcmd.Parameters.AddWithValue ("@parola", password.Text);
createcmd.Parameters.AddWithValue("@nume", name.Text);
createcmd.Parameters.AddWithValue ("@prenume", secondname.Text);
createcmd.Parameters.AddWithValue("@adresa", address.Text);
createcmd.Parameters.AddWithValue ("@email", email.Text);
createcmd.ExecuteNonQuery();
m_dbConnection.Close();
なぜ 'id = Convert.ToInt32(getid)+ 1;' getid'がすでにnull可能な 'int'ですか? 'id = getid.Value +1;'でなければなりません。また、リリースモードではなく、デバッグモードで実行していますか?少なくとも1つの例外が発生すると、少なくとも1つの例外が停止し、エラーのある行が表示されます。例外のない絶対的なクラッシュは非常に奇妙です。 –
私はそのようにしてみます。 –
OK、SQLiteエラーそのような機能はありませんLAST –