在表 C# OleDB 中的错误位置插入了字段

本文关键字:位置 插入 字段 错误 OleDB 在表 | 更新日期: 2023-09-27 18:37:14

我正在成功地插入表格,但由于某种原因,字段处于混乱的位置。使用 MS Access Database 2010 开发 Visual Studio 2012 C#。

(没有足够的代表直接发布图像,所以请耐心等待链接)这就是表格结构的样子(抱歉,不能发布超过 2 个链接)

(列 = 字段类型):

  • Codigo = 文本
  • 数据赛达(又名 @data)= 日期/小时
  • Entidade = 文本
  • 数据 Ent = 数据/小时
  • GT Ent = 文本
  • Estado = 文本
  • GT 赛达 = 文本
  • 天文台 = 文本
  • 请购单 = 编号
  • 证书 = 文本
  • 结果 = 文本
  • 选择=是/否
  • Tipo int = 文本

这是正确行(如行)的表中的一个很好的例子 好行

这是我在插入混乱行中得到的一行

这就是我制作插入的方式

                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();

我在这里做错了什么?

在表 C# OleDB 中的错误位置插入了字段

由于您尚未在 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)";