下面一条SQL语句哪错了?求解,求高手,我菜鸟
OleDbParameter[] parameters = new OleDbParameter[]
{
new OleDbParameter("@Cname", DbType.String)
};
parameters[0].Value = model.Name;
StringBuilder sql = new StringBuilder();
string sqls = "update ArticleCategories set Cname='1234' where Cid=@Cid";//这行执行起来没问题
string sqls = "update ArticleCategories set Cname=@Cname where Cid=@Cid";//这行就不行,晕了。啥原因啊?
return OleDbDBHelper.ExecuteNonQuery(sqls.ToString(), parameters) > 0;
[解决办法]
为神马要用access 既然要求不高 就用过滤+拼接吧 如果一定要参数话 php的怎么活 过滤全面也是安全的
[解决办法]
你这问题很明显啊,看看你下面这几行:
OleDbParameter[] parameters = new OleDbParameter[]
{
new OleDbParameter("@Cname", DbType.String)
};
parameters[0].Value = model.Name;
这意思就是只定义过一个参数,所以你的第一句SQL只有一个参数就不报错,但第二个有两个参数的当然就过不去啦。所以你照样再添加另一个参数@Cid的定义就可以了
[解决办法]
另外,你一次只执行一条SQL好不好,你这个定义一个参数想提供给两条SQL,脚踏两只船没有好结果的喔
[解决办法]
没有 @Cid 参数
OleDbParameter[] parameters = new OleDbParameter[]
{
new OleDbParameter("@Cname", DbType.String)
}; 里面加上试试
[解决办法]
LZ你看一下 parameters 的重载方法 ,是不是参数有冲突呢?
[解决办法]