我的删除查询不起作用
本文关键字:不起作用 查询 删除 我的 | 更新日期: 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
表中删除一条记录,如果AnnouncementID
与bo.A_ID
的值匹配,如果bo.A_ID
的值与AnnouncementID
不匹配,cmd.ExecuteNonQuery();
将返回0
。如果不删除,则意味着AnnouncementID
与bo.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
}
}
}