我無法獲取正在發生的事情。我正在使用一個SQL CE(.sdf文件)到本地數據庫(winform應用程序),當我調試時,一切都運行得很好,我最終得到了我的數據插入的消息。但稍後,當我檢查我的數據庫時,它是空的。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();
}
謝謝@Steve倫斯,我剛剛看到這個鏈接http://stackoverflow.com/questions/3899310/why-cant -i-insert-a-record-into-my-sql-compact-3-5-database顯示它,但現在我有另一個問題:當我在非調試模式下運行應用程序時,我的數據庫將是根, 對? –
如果您的數據庫位於調試目錄中,那麼當您在發佈模式下運行時,可能找不到它。你也可以調用:AppDomain.CurrentDomain.SetData(「DataDirectory」,@「C:\ MyData \」); –
我有一個數據庫也在我的根文件夾(Database/database.sdf)我想知道德調試文件夾數據庫只用於調試測試,發佈後我的系統它將運行在我的主數據庫...在引導它shoukd會像那o_0 –