当前位置: 代码迷 >> ASP.NET >> OleDb UPDATE 异常,无法更新
  详细解决方案

OleDb UPDATE 异常,无法更新

热度:8833   发布时间:2013-02-26 00:00:00.0
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?
更新没有任何作用?

------解决方案--------------------------------------------------------
为什么改成直接传值 才能成功更新?
参数化的查询为什么不能用?
什么原因?
----
可以的参数化的只不过参数改用?号 系统不会识别这个顺序所以你要传参时按?号出现的顺序去写
------解决方案--------------------------------------------------------
为什么改成直接传值 才能成功更新?
参数化的查询为什么不能用?
===========================
仔细查查你的程序部分有没有问题吧。
出现这种情况既然不是权限问题,肯定是你的程序的问题。
  相关解决方案