私はデータベースとしてMS Accessファイルを使用してVisual Studio 2012に取り組んでおり、この挿入で多くの問題を抱えています:
cmd.Parameters.Add(new OleDbParameter("@codigo", cal.CodEtiq)); // Value = int
cmd.Parameters.Add(new OleDbParameter("@data", cal.Data.ToString("yyyy-MM-dd hh:mm"))); //Value = 2013-10-29 00:00
cmd.Parameters.Add(new OleDbParameter("@entidade", cal.EntidadeCal)); // Value = string
cmd.Parameters.Add(new OleDbParameter("@observacao", cal.Observacao)); // Value = string
cmd.Parameters.Add(new OleDbParameter("@certificado", cal.Certificado)); // Value = string
cmd.Parameters.Add(new OleDbParameter("@resultado", cal.Resultado)); // Value = string
cmd.Parameters.Add(new OleDbParameter("@selecionar", cal.Selecionar));// Value = int
cmd.Parameters.Add(new OleDbParameter("@null", DBNull.Value));
cmd.CommandText = "INSERT INTO [Movimento Ferramentas] VALUES (@codigo, CAST(@data AS DATETIME), @entidade, @null, @null, 'Calibração', @null, @observacao, @null, @certificado, @resultado, @selecionar, @null)";
テーブルは次のように定義されます ( column = fieldtype):
- Codigo = テキスト
- データ サイダ (別名 @data) = 日付/時間
- Entidade = テキスト
- Data Ent = データ/時間
- GT Ent = テキスト
- Estado = テキスト
- GT サイダ = テキスト
- observacaoes = テキスト
- requisitante = 数
- 証明書 = テキスト
- 結果 = テキスト
- 選択 = はい/いいえ
- Tipo int = テキスト
最初に「基準式のデータ型が一致しません」というエラーが発生し、次に日付のキャストを調べてそのように入力すると、「構文エラー(演算子が見つかりません)のようなエラーが表示されますクエリの式 CAST(@data AS DATETIME)"
助けてください。
更新: @Ralph で提案されているように、実際には、 「@null」の DBNull.Valueを使用する代わりに、すべての null を null として配置する必要がありました。だから、問題は解決しました ありがとうございました。