问题描述
各位大虾好,c#,winform程序中更新数据库数据成功,可是数据库中该字段的值是null。造成此现象的原因有哪些啊?分别怎么解决呢?小妹先行谢谢!!
解决方案
解决方案二:
代码代码
解决方案三:
呵呵,有很多原因,其中一种可笑的原因是更新的时候使用的连接字符串不对,更新到另外一个数据库里面了,你用Command执行一个Update的sql语句,会返回影响的行数,检查一下这个数字是否大于0,
解决方案四:
////获取收费年份MatchCollectionmc;String[]results=newString[feeHtml.Length];//获取匹配的字符串int[]matchposition=newint[feeHtml.Length];//获取字符串的所以//创建正则对象并初始化Regexr=newRegex(@"第(d+)年年费");//找出所有匹配项存入集合.mc=r.Matches(feeHtml);//遍历集合for(inth=0;h<mc.Count;h++){//将集合中的匹配项存入数组.results[h]=mc[h].Value;//记录匹配项的索引matchposition[h]=mc[h].Index;if(results[h]!=null)//倘若有匹配项{feedate=results[h];stringcut=feedate.Substring(1,1);intfeeday=Convert.ToInt32(cut);List<int>days=newList<int>();days.Add(feeday);intmaxyear=days.Max();//3、取得最大年份stringdt=conn.ExecScalar("selectapdfromdata_cnwhereapn="+"'"+feeapn+"'").ToString();mm=dt;//4、得到当前专利号的申请日字段并获取年份cndate=Convert.ToInt32(mm.Substring(0,4));sum=maxyear+cndate;//5、最大年份与申请年份求和cndatefoot=mm.Substring(5,mm.Length-5);//6、将和数赋值给收费年字段stringfeeTime=Convert.ToString(sum)+"."+cndatefoot;intnum=conn.ExecNon("updatedata_cnsetfee_date="+"'"+feeTime+"'"+"whereapn="+"'"+feeapn+"'");if(num>0){Console.WriteLine("收费时长更新成功!");}else{Console.WriteLine("收费时长更新失败!");}}}conn.Close();呵呵,num>0的说明sql语句是没有错误的。
解决方案五:
updatedata_cnsetfee_date="+"'"+feeTime+"'"+"whereapn="+"'"+feeapn+"'");不知道是不是这句话问题。。。。。看看标点符号加的对不对。。。
解决方案六:
呵呵,现在可以了。谢谢!倒是出现新问题了:无法将文件“D:HHD_CNPatentHHD_CNPatentAPP_DataHHD_CNPatent.mdf”复制到“binDebugAPP_DataHHD_CNPatent.mdf”。文件“binDebugAPP_DataHHD_CNPatent.mdf”正由另一进程使用,因此该进程无法访问此文件。HHD_CNPatent我的程序已经停止调试了,bin。。。下面的那个数据库也断开了啊
解决方案七:
intnum=conn.ExecNon("updatedata_cnsetfee_date="+"'"+feeTime+"'"+"whereapn="+"'"+feeapn+"'");WHERE前面沒有空格intnum=conn.ExecNon("updatedata_cnsetfee_date='"+feeTime+"'whereapn='"+feeapn+"'");
解决方案八:
呵呵,好了,谢谢!!