惊奇发现,在数据层中定义的变量ID和@ID居然等价

kflash 2005-02-05 06:20:06
public string DelPhoto(int @ID)//删除照片
{
conn = new OleDbConnection(ConfigurationSettings.AppSettings["dsn"]);
cmd = new OleDbCommand("DELETE * FROM Photo WHERE ID = @ID",conn);

cmd.Parameters.Add("@ID",OleDbType.Integer).Value = (int)@ID;

conn.Open();
cmd.ExecuteNonQuery();
conn.Dispose();
conn.Close();

return "1";
}

===================================================〉

public string DelPhoto(int ID)//删除照片
{
conn = new OleDbConnection(ConfigurationSettings.AppSettings["dsn"]);
cmd = new OleDbCommand("DELETE * FROM Photo WHERE ID = @ID",conn);

cmd.Parameters.Add("@ID",OleDbType.Integer).Value = (int)@ID;

conn.Open();
cmd.ExecuteNonQuery();
conn.Dispose();
conn.Close();

return "1";
}

我忘了写@居然也能删除,而且不会提示出错,晕。
...全文
131 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
beyondjay 2005-02-05
  • 打赏
  • 举报
回复
你把他和数据库的参数搞混了把
smallMage 2005-02-05
  • 打赏
  • 举报
回复
只是转义
SmartBaiChi 2005-02-05
  • 打赏
  • 举报
回复
当你的字段名和关键字重名了就有用了。
LoveCherry 2005-02-05
  • 打赏
  • 举报
回复
这里的@是转义的意思不是参数的意思
onekey 2005-02-05
  • 打赏
  • 举报
回复
再这里用转义符@没什么意义啊
老赵说高考 2005-02-05
  • 打赏
  • 举报
回复
public string DelPhoto(int @ID)//删除照片
这里写@程序把他当成转义字符,其实没有必要

常规写法应该是
public string DelPhoto(int ID)//删除照片

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧