OleDb UPDATE 错误,无法更新
自己改装了一下 SqlHelper ,变成OleDb用的Helper
执行 Select,Insert语句都没问题
但是所有的UPDATE的语句 都没有任何作用,也没报错,出了什么问题,请高手帮忙看看
以下是代码:
public bool Update(TopicInfo _TopicInfo)
{
OleDbParameter[] prams = {
OleDb.MakeInParam( "@Tid ",OleDbType.BigInt,8,_TopicInfo.Tid),
OleDb.MakeInParam( "@Cid ",OleDbType.BigInt,8,_TopicInfo.Cid),
OleDb.MakeInParam( "@Uid ",OleDbType.BigInt,8,_TopicInfo.Uid),
OleDb.MakeInParam( "@Title ",OleDbType.VarChar,100,_TopicInfo.Title),
OleDb.MakeInParam( "@Contain ",OleDbType.LongVarChar,0,_TopicInfo.Contain),
OleDb.MakeInParam( "@Reward ",OleDbType.Integer,4,_TopicInfo.Reward),
OleDb.MakeInParam( "@IsOK ",OleDbType.Boolean,1,_TopicInfo.IsOK),
OleDb.MakeInParam( "@PostNum ",OleDbType.Integer,4,_TopicInfo.PostNum),
OleDb.MakeInParam( "@ViewNum ",OleDbType.Integer,4,_TopicInfo.ViewNum),
OleDb.MakeInParam( "@TotalNum ",OleDbType.Integer,4,_TopicInfo.TotalNum),
OleDb.MakeInParam( "@PostDate ",OleDbType.Date,8,_TopicInfo.PostDate),
OleDb.MakeInParam( "@IsLock ",OleDbType.Boolean,1,_TopicInfo.IsLock)
};
string cmd = "UPDATE WQS_Topic SET [Cid]=@Cid,[Uid]=@Uid,[Title]=@Title,[Contain]=@Contain,[Reward]=@Reward,[IsOK]=@IsOK,[PostNum]=@PostNum,[ViewNum]=@ViewNum,[TotalNum]=@TotalNum,[PostDate]=@PostDate,[IsLock]=@IsLock WHERE ([Tid]=@Tid) ";
return OleDb.ExecuteNonQuery(cmd, prams) == 1;
}
为什么OleDb.ExecuteNonQuery(cmd, prams) 总是等于0?
更新没有任何作用?
------解决方案--------------------为什么改成直接传值 才能成功更新?
参数化的查询为什么不能用?
什么原因?
----
可以的参数化的只不过参数改用?号 系统不会识别这个顺序所以你要传参时按?号出现的顺序去写
------解决方案--------------------为什么改成直接传值 才能成功更新?
参数化的查询为什么不能用?
===========================
仔细查查你的程序部分有没有问题吧。
出现这种情况既然不是权限问题,肯定是你的程序的问题。