1

当我尝试从本地数据库中选择值时,它会毫无问题地执行。但是当我尝试插入和删除时,它正在执行查询,但它不会影响任何行。

这是我用来从本地数据库中删除行的代码:

        SqlCeConnection sqlConnection1 = new SqlCeConnection();
        sqlConnection1.ConnectionString = "Data Source = Database1.sdf";

        SqlCeCommand cmd = sqlConnection1.CreateCommand();
        cmd.CommandType = System.Data.CommandType.Text;
        cmd.CommandText = "DELETE FROM table1 WHERE slno=2";
        cmd.Connection = sqlConnection1;

        sqlConnection1.Open();
        cmd.Prepare();
        int aff=cmd.ExecuteNonQuery();//here its returning '0'
        MessageBox.Show(aff.ToString());
        sqlConnection1.Dispose();
        sqlConnection1.Close();
4

1 回答 1

1

删除可能不会影响任何行。

顺便说一句,我建议using在您的代码中使用该语句:

using (SqlCeConnection conn = new SqlCeConnection("Data Source = Database1.sdf"))
using (SqlCeCommand comm = new SqlCeCommand("DELETE FROM table1 WHERE slno = 2", conn))
{
    conn.Open();
    comm.CommandType = CommandType.Text;
    comm.ExecuteNonQuery();
}

这将为您处理相关对象的处置。

假设 SQL 与您的数据库相关,并且您已预先使用连接字符串成功连接,那么上面可能会对您的数据库执行删除操作。

于 2011-07-20T10:58:19.623 回答