对象不能从DBNull 转换为其他类型的解决方法

string sql_str="select MAX(lID) from liuyan":改成

语句string sql_str = "select iif((MAX(lID)) is null,'0','1') from liuyan";

iff(判断,是,否)

但是只能添加一次,因为第二次添加运行string sql_str = "select iif((MAX(lID)) is null,'0','1') from liuyan";
           int lid=DBHelper.GetScalar(sql_str)+1;

会将lid设置为2,所以以后添加的lID都是2,那样后台操作的时候会一起删了lID=2的

所以我修改了代码:

如我的代码

 public static void AddMsg(Msg msg)
       {

           string sql_str = "select iif(lID is null,'0','1') from liuyan";
           int lid = DBHelper.GetScalar(sql_str);
           if (lid == 0)
           {
           string sql2 = "insert into liuyan(lID) values("+lid+")";
           DBHelper.ExecuteCommand(sql2);
           }
           else
           {
               string sql1 = "select MAX(lID) from liuyan";
               int lid2 = DBHelper.GetScalar(sql1)+1;
               string sql = "insert into liuyan(lID,lName,lTel,lEmail,lMsg) values(" + lid2 + ",@lName,@lTel,@lEmail,@lMsg)";
               OleDbParameter[] para = new OleDbParameter[]
           {
               new OleDbParameter("@lName",msg.LName),
               new OleDbParameter("@lTel",msg.LTel),
               new OleDbParameter("@lEmail",msg.LEmail),
               new OleDbParameter("@lMsg",msg.LMsg),
           };
               DBHelper.ExecuteCommand(sql, para);
           }

              
       }

 

呵呵,完成,看了网上的,千篇一律,不知道都拷哪里的,不知道到底是谁写的,一个字不差的都拷贝拷贝再拷贝,本人实在看不下去,于是自己实践写下笔记与大家分享。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值