简体   繁体   English

我的删除查询不起作用

[英]My Delete Query is not being working

I,m designing a CMS(campus Management System) and i wana delete some record...but its neither working nor generate any error...just return zero in "result " varaiable mentioned in code我,正在设计一个 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);

Your code works and deletes a record from Anouncement table, if AnnouncementID matches with the value of bo.A_ID , if value of bo.A_ID doesn't match with AnnouncementID , cmd.ExecuteNonQuery();你的代码的工作,并删除从记录Anouncement表,如果AnnouncementID与价值匹配bo.A_ID ,如果值bo.A_ID不匹配AnnouncementIDcmd.ExecuteNonQuery(); returns 0 .返回0 If it's not deleting that means AnnouncementID doesn't match with the value of bo.A_ID .如果它不删除该手段AnnouncementID不匹配的值bo.A_ID

But I suggest improve you code through using statement, this using statement ensures that Dispose is called even if an exception occurs while methods on the object are called.但我建议通过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
            }
      }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM