您的位置:首页 > 其它

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

2010-01-09 13:25 375 查看
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);
}



}


呵呵,完成,看了网上的,千篇一律,不知道都拷哪里的,不知道到底是谁写的,一个字不差的都拷贝拷贝再拷贝,本人实在看不下去,于是自己实践写下笔记与大家分享。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: