我的删除查询不起作用

本文关键字:不起作用 查询 删除 我的 | 更新日期: 2023-09-27 18:21:55

我正在设计一个CMS(校园管理系统),我想删除一些记录。。。但它既不起作用,也不会产生任何错误。。。只在代码中提到的"结果"变量中返回零

public void DeleteAnnouncement(BusinessObject bo)
    {
        string ConnStr = Connection();
        SqlConnection conn = new SqlConnection(ConnStr);
        conn.Open();
        string query = "Delete from Anouncement where AnnouncementID=@i";

        SqlCommand cmd = new SqlCommand(query, conn);
        SqlParameter p1 = new SqlParameter("i", bo.A_ID);

        cmd.Parameters.Add(p1);
        int result = cmd.ExecuteNonQuery();
        conn.Close();
        if (result > 0)
        {
            Console.WriteLine("'n'n't============================================");
            Console.WriteLine("'tAnnouncement Deleted");
            Console.WriteLine("'t============================================'n'n");
        }
    }

我的删除查询不起作用

SqlParameter p1 = new SqlParameter("i", bo.A_ID);

参数名称前面缺少"@"。

Correct: SqlParameter p1 = new SqlParameter("@i", bo.A_ID);

您的代码工作并从Anouncement表中删除一条记录,如果AnnouncementIDbo.A_ID的值匹配,如果bo.A_ID的值与AnnouncementID不匹配,cmd.ExecuteNonQuery();将返回0。如果不删除,则意味着AnnouncementIDbo.A_ID的值不匹配。

但我建议通过using语句改进代码,该using语句确保即使在调用对象上的方法时发生异常,也能调用Dispose。

string ConnStr = Connection();
string query = "Delete from Anouncement where AnnouncementID=@i";
using (SqlConnection conn = new SqlConnection(ConnStr))
{
     using (SqlCommand cmd = new SqlCommand(query, conn))
     {
         try
            {
                SqlParameter p1 = new SqlParameter("i", bo.A_ID);
                cmd.Parameters.Add(p1);
                conn.Open();
                int result = cmd.ExecuteNonQuery();
                conn.Close();
                if (result > 0)
                {
                    Console.WriteLine 
                    ("'n'n't============================================");
                    Console.WriteLine("'tAnnouncement Deleted");
                    Console.WriteLine 
                    ("'t============================================'n'n");
                    }
            }
            catch (Exception ex)
            {
               //Do your exception handling work
            }
      }
}