SQL命令INSERT不会将数据插入表中,但是调试显示它已经完成(C#)

时间:2011-11-14 00:09:46

标签: sql winforms c#-4.0 sql-server-ce

我无法了解我的应用程序发生了什么。我正在使用SQL CE(.sdf文件)到本地数据库(winform应用程序),当我调试时,一切运行良好,我最后得到的信息是我的数据插入良好。但是后来,当我检查我的数据库时,它是空的。

我该怎么办?

这是我的代码:

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();
        }

2 个答案:

答案 0 :(得分:3)

您有两个数据库。您正在插入一个并在另一个中查找结果。

或者,您正在开始一个事务,插入但不提交。

答案 1 :(得分:0)

您需要做的第一件事是先创建一个简单的select语句,从您的sqlce数据库中获取记录。

if( has record//connected )
{
  //Proceed to your insert statement remove if else and use

  conn.Open();
  cmd.ExecuteNonQuery()

  //then check your DB again 

}
else
{
//Problem on you connection string
}

您的sqlce数据库位于您的bin文件夹

此致