Access System.Data.OleDb.OleDbException:“标准表达式中数据类型不匹配。”

莫名其妙的人参果 2021-04-04 11:15:34
新增记录时候 遇到这个问题。百度+测试3小时左右,得出结论,c# datatable中的数据类型 和 access中数据类型 不匹配导致的,然后 更改代码如下,结果还是同样的错误.全部数据类型已经更新.没有弹窗,最后一步时候报错:“标准表达式中数据类型不匹配。” 大佬 帮帮忙。按我自己想法,全部类型都换了,为什么还是报错呢?
public static void zengjiarucang(DataRow dr)
{
string zengjiacc = "";
string zengjiaaa = "";
int pld = dtcrc.Columns.Count;
for (int i = 0; i < pld; i++)
{
string pls = dtcrc.Columns[i].Caption;
if (i == 0)
{

zengjiacc = "[" + pls + "]";
zengjiaaa = "@" + pls;
}
else
{
zengjiacc = zengjiacc + ",[" + pls + "]";
zengjiaaa = zengjiaaa + ",@" + pls;
}
}

string zengjia = "insert into [入仓](" + zengjiacc + ") values(" + zengjiaaa + ")";
OleDbCommand comm = new OleDbCommand(zengjia, conn);
zengjia = "";
//System.Windows.Forms.MessageBox.Show(zengjia);
for (int i = 0; i < pld; i++)
{
string pls = dtcrc.Columns[i].Caption;

if (dr[i].GetType().FullName.Equals("System.DateTime"))
{
OleDbParameter parm = new OleDbParameter("@" + pls, OleDbType.DBTimeStamp);


parm.Value = Convert.ToDateTime(dr[i].ToString()).ToString("yyyy-MM-dd HH:mm:ss");
comm.Parameters.Add(parm);

}
else
{

if (dr[i].GetType().FullName.Equals("System.Int32"))
{
OleDbParameter parm = new OleDbParameter("@" + pls, OleDbType.Integer);
parm.Value =Int32.Parse( dr[i].ToString());
comm.Parameters.Add(parm);

}
else
{

if (dr[i].GetType().FullName.Equals("System.Double"))
{
OleDbParameter parm = new OleDbParameter("@" + pls, OleDbType.Double);
parm.Value = double.Parse(dr[i].ToString());
comm.Parameters.Add(parm);

}
else
{

if (dr[i].GetType().FullName.Equals("System.String"))
{
OleDbParameter parm = new OleDbParameter("@" + pls, OleDbType.VarWChar);
parm.Value = dr[i].ToString();
comm.Parameters.Add(parm);

}
else
{

System.Windows.Forms.MessageBox.Show(dr[i].GetType().ToString());

}

}

}

}

}

comm.ExecuteNonQuery();
}



...全文
315 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
兔子-顾问 2021-04-05
  • 打赏
  • 举报
回复
excel的类型就是格式类型,数字可以用数字类型,文本,money等,建议都ToString然后Parse。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧