代码有些长,我就不粘贴了,我大概归纳了一下问题,基本上是这样: 假如,一个数据库, 同时,有两条语句 1 update [inventory] set [数量] = [数量] + '" + Convert.ToDouble(information[4].ToString()) + "' WHERE [名称] = '" + information[0].ToString() + "' AND [规格] = '" + information[1].ToString() + "' AND [单位] = '" + information[2].ToString() + "' AND [单价] = '" + Convert.ToDouble(information[3].ToString()) + "' 2 insert into [inventory] (名称,规格,单位,单价,数量) values ('" + information[0].ToString() + "','" + information[1].ToString() + "','" + information[2].ToString() + "','" + Convert.ToDouble(information[3].ToString()) + "','" + Convert.ToDouble(information[4].ToString()) + "') -------------------------------------------------------------------- 1的作用是,当数据库中有1个m的时候,如果我又存入2个m,则数据库更新m的数量为1+2=3。 2的作用是,数据库中还是1个m,但这时如果我存入1个n,则数据库中追加1个n。 当我存数据时,程序先调用1,看看是否符合1的情况,符合就可以运行完毕了,不符合,则运行2. 但是现在是这样,如果一个空数据库,我开始存入数据:1个m,按规则,运行1了,但是数据库中没有他,则运行了2,将那1个m存进数据库了。然后我又存数据,此时,不管我存什么,当程序运行到1时,就报错,提示:标准表达式中数据类型不匹配。但是当运行存1个m的时候,明明没有报错,正常运行啊。 就是说,如果是空数据库,我的语句都能运行,但是,如果有数据了,运行1,就会提示“标准表达式中数据类型不匹配” 数据类型: 名称:文本 规格:文本 单位:文本 单价:货币 数量:数字(double) 求解!!