【发布时间】:2011-11-20 06:05:55
【问题描述】:
我正在尝试将数据插入到我的数据库中,命令如下:
public static bool InsertUser(string Date, string Day, string HourFrom, string HourTo, int HoursWorked, int Where)
{
string sql = string.Format("INSERT INTO Tablee (Date, Day, HourFrom, HourTo, HoursWorked, Where)VALUES('{0}','{1}','{2}','{3}','{4}',{5},{6})", Date, Day, HourFrom, HourTo, HoursWorked, Where);
return DAL.ExecuteNonQuery(sql) != 0;
}
现在我收到了我在主题中写的错误,它来自我构建 String Sql 的行(“INSERT INTO ...”)。任何人都知道我该如何解决它?
附: '{0}'.'{1}'.. 的用途是什么?我从我做的一个旧项目中复制了它,我不记得它为什么在那里以及它做了什么。
【问题讨论】:
-
避免通过连接或格式化字符串来创建查询。改为使用参数。
-
别忘了评论你的代码;它可能有助于将来避免这个问题(“P.S. Just Cause...”)。
-
string.Format("format string",
) 将用第 N 个格式参数替换 {N} 模式,从 0 开始计数。 string.Format("{0} {1} !", "Hello", "world") 将 {0} 替换为 Hello 并将 {1} 替换为 world 返回 "Hello world!"结果是字符串。