C# 标准表达式中数据类型不匹配.求解~

if(x1.Tables[0].Rows.Count>0){for(inti=0;i<x1.Tables[0].Rows.Count;i++){stringstrSql=... if(x1.Tables[0].Rows.Count >0)
{
for (int i = 0; i < x1.Tables[0].Rows.Count; i++)
{ string strSql = "insert into 抽查表5(期号,员工编号,姓名,性别,二级部门,三级部门,四级部门,五级部门,间直接,部门,年龄,省份,出生日期,资格,录用日期,学历)"
+ "values('"+ textBox1.Text + "','"
+ x1.Tables[0].Rows[i][0] + "','"
+ x1.Tables[0].Rows[i][1] + "','"
+ x1.Tables[0].Rows[i][2] + "','"
+ x1.Tables[0].Rows[i][3] + "','"
+ x1.Tables[0].Rows[i][4] + "','"
+ x1.Tables[0].Rows[i][5] + "','"
+ x1.Tables[0].Rows[i][6] + "','"
+ x1.Tables[0].Rows[i][7] + "','"
+ x1.Tables[0].Rows[i][8] + "','"
+ x1.Tables[0].Rows[i][9] + "','"
+ x1.Tables[0].Rows[i][10] + "','"
+ x1.Tables[0].Rows[i][11] + "','"
+ x1.Tables[0].Rows[i][12] + "','"
+ x1.Tables[0].Rows[i][13] + "','"
+ x1.Tables[0].Rows[i][14] + "')";
cmd = new OleDbCommand(strSql, conn);
cmd.ExecuteNonQuery(); //这里就提示标准表达式中的数据类型不匹配。

}

}
展开
 我来答
freeeeeewind
2014-04-17 · TA获得超过1万个赞
知道大有可为答主
回答量:3227
采纳率:94%
帮助的人:1344万
展开全部

参数年龄,出身日期可能不是字符字段,不需要再两端加 ‘ ’


OleDbCommand cmd =cnn.CreateCommand();

cmd.CommandText ="insert into 抽查表5 (期号,员工编号,姓名,性别,二级部门,三级部门,四级部门,五级部门,间直接,部门,年龄,省份,出生日期,资格,录用日期,学历) values" +
"@期号,@员工编号,@姓名,@性别,@二级部门,@三级部门,@四级部门,@五级部门,@间直接,@部门,@年龄,@省份,@出生日期,@资格,@录用日期,@学历)";

cmd.Parameters.Add("@期号", OleDbType.Integer, int.Parse(textBox1.Text));
cmd.Parameters.Add("@员工编号", OleDbType.VarChar, x1.Tables[0].Rows[i][0]);
……
cmd.Parameter.Add("@出生日期", OleDbTypeDBDate, DateTime.Parse( x1.Tables[0].Rows[i][11]));
……
cmd.ExecuteNonQuery();
更多追问追答
追问
我这边是对应的列不对,嘻嘻。还有rows前面要加上tables〔〕
谢谢
无名可用_狂汗
2014-04-17 · TA获得超过3025个赞
知道大有可为答主
回答量:2016
采纳率:0%
帮助的人:1165万
展开全部
首先建议不要用字符串拼接的方法,容易出现漏洞
其次,断点调试,查看报错的时候每一个数据的类型以及是否有值。
追问
谢谢,我现在用别的方法了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式