私のアプリに何が起こっているのですか?私はローカルデータベース(winformアプリケーション)にSQL CE(.sdfファイル)を使用しています。デバッグ時にはすべてがうまく動いています。データの最後にメッセージが挿入されています。しかし、後で、私は自分のdatabseをチェックすると、その空です。SQLコマンドINSERTはテーブルにデータを挿入しませんが、デバッグはそれを示しています(C#)
どうすればよいですか?
これは私のコードです:
SqlCeConnection conn = new SqlCeConnection(@"Data Source=|DataDirectory|\Database\Livraria.sdf;");
SqlCeCommand cmd = new SqlCeCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = @"INSERT INTO Livros (Codigo, ISBN, Titulo, Editora, Localizacao, Valor, QTD, Autor, AutorEspiritual, Data_)
VALUES (@Codigo, @ISBN, @Titulo, @Editora, @Localizacao, @Valor, @QTD, @Autor, @AutorEspiritual, @Data_)";
cmd.Parameters.AddWithValue("@Codigo", codigo);
cmd.Parameters.AddWithValue("@ISBN", isbn);
cmd.Parameters.AddWithValue("@Titulo", titulo);
cmd.Parameters.AddWithValue("@Editora", editora);
cmd.Parameters.AddWithValue("@Localizacao", localizacao);
cmd.Parameters.AddWithValue("@Valor", valor);
cmd.Parameters.AddWithValue("@QTD", entradas);
cmd.Parameters.AddWithValue("@Autor", autor);
cmd.Parameters.AddWithValue("@AutorEspiritual", autorEspiritual);
cmd.Parameters.AddWithValue("@Data_", data_);
try
{
conn.Open();
if (cmd.ExecuteNonQuery() > 0)
{
MessageBox.Show("Livro adicionado com sucesso!");
}
else
{
MessageBox.Show("O livro não foi adicionado.");
}
// Reset campos
Codigo.Text = "";
Titulo.Text = "";
Editora.SelectedIndex = 0;
Valor.SelectedIndex = 0;
Localizacao.SelectedIndex = 0;
Entrada.Text = "";
Isbn.Text = "";
Autor.SelectedIndex = 0;
AutorEspiritual.SelectedIndex = 0;
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
conn.Close();
}
あなたのbinフォルダに配置されて
私はちょうどこのリンクhttp://stackoverflow.com/questions/3899310/why-cantを見て、あなたに@Steve Wellensをありがとう - i-insert-a-record-into-my-sql-compact-3-5データベースを表示していますが、別の質問があります。アプリケーションをデバッグモードで実行すると、データベースがルート、 右? –
データベースがデバッグディレクトリにある場合、リリースモードで実行すると、データベースが見つからないことがあります。 AppDomain.CurrentDomain.SetData( "DataDirectory"、@ "C:\ MyData \");を呼び出すこともできます。 –
私は自分のルートフォルダ(Database/database.sdf)にもデータベースを持っています。私はデバッグフォルダデータベースはデバッグテストのためだけで、私のシステムは私のメインデータベースで実行します。そのo_0 –