我正在成功插入表中,但由于某种原因,这些字段处于混乱状态。使用MS Access Database 2010处理Visual Studio 2012 C#。
(没有足够的代表直接发布图片所以请点击链接) 这就是表结构的样子(抱歉,但不能发布超过2个链接)
(column = fieldtype):
这是行Good Row
之类正确行的表中的一个很好的例子这是我通过INSERT Messed up Row
得到的一行这就是我制作INSERT的方法
OleDbCommand cmd = l.CreateCommand();
cmd.Parameters.Add(new OleDbParameter("@codigo", cal.CodEtiq.ToString()));
cmd.Parameters.Add(new OleDbParameter("@data", cal.Data));
cmd.Parameters.Add(new OleDbParameter("@entidade", cal.EntidadeCal));
cmd.Parameters.Add(new OleDbParameter("@observacao", cal.Observacao));
cmd.Parameters.Add(new OleDbParameter("@certificado", cal.Certificado));
cmd.Parameters.Add(new OleDbParameter("@resultado", cal.Resultado));
cmd.Parameters.Add(new OleDbParameter("@selecionar", cal.Selecionar));
cmd.CommandText = "INSERT INTO [Movimento Ferramentas] VALUES (@codigo, @data , @entidade, null, null, 'Calibração', null, @observacao, null, @certificado, @resultado, @selecionar , null)";
result = cmd.ExecuteNonQuery();
我在这里做错了什么?
答案 0 :(得分:2)
由于您未在INSERT
语句中指定列,因此它将在表的列顺序的基础上插入值。不确定您的实际列顺序是什么,但您可以通过在INSERT
语句中指定列来解决您的问题。
cmd.CommandText = "INSERT INTO [Movimento Ferramentas] "+
"(Codigo , [Data saida], ...............) " + // columns
"VALUES (@codigo, @data , @entidade, null, null, 'Calibração', null, @observacao, null, @certificado, @resultado, @selecionar , null)";