Вставлены поля не в том месте в таблице C# OleDB

Я делаю успешную вставку в таблицу, но по какой-то причине поля находятся в неправильном положении. Работа на Visual Studio 2012 C# с базой данных MS Access 2010.

(У вас недостаточно представителей, чтобы публиковать изображения непосредственно, поэтому, пожалуйста, имейте в виду ссылки) Это то, на что похожа структура таблицы (Извините, но не могу опубликовать более 2 ссылок)

(столбец = тип поля):

  • Codigo = текст
  • Данные Сида (ака @data) = дата / час
  • Энтидада = текст
  • Data Ent = данные / час
  • GT Ent = текст
  • Estado = текст
  • GT saida = текст
  • observacaoes = текст
  • реквизитант = номер
  • Сертификат = текст
  • resultado = текст
  • selecionar = Да / Нет
  • типо int = текст

Это хороший пример в таблице правильной строки, такой как строка Good Row

Это строка, которую я получаю с INSERT Messed up Row

Вот как я делаю ВСТАВКУ

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

Что я здесь не так делаю?

1 ответ

Решение

Поскольку вы не указали столбцы в вашем 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)";
Другие вопросы по тегам