1

私はこのテーブルを持っています:

Items
====
Barcode (text)
Des (text)
Price (double)

d:\Items.csv 高速挿入のために csvファイルを作成しました(12345,computer,120.44).....

私はこのように挿入しようとします(C# WinForm プログラム):

Cmd = Conn.CreateCommand();
SQL = @"INSERT INTO Items SELECT * FROM [Text;DATABASE=" + @"d:" + @"\].[Items.txt];";
Cmd.CommandText = SQL;
Cmd.ExecuteNonQuery();

しかし、私は2つのエラーを得ました:

1. Data type mismatch in criteria expression.

2. The field 'Items.Barcode ' cannot contain a Null value because the Required property for this field is set to True.  Enter a value in this field.

これを修正するには?

4

1 に答える 1

3

次の C# コードは私にとってはうまくいきます。C:\Users\Public\Items.csvAccess 2010 データベースの [Items] という名前のテーブルにインポートしますC:\Users\Public\Database1.accdb。CSVファイルの中身は単純に

12345,computer,120.44

コードは

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Odbc;

namespace myDbTest
{
    class Program
    {
        static void Main(string[] args)
        {
            string myConnectionString;
            myConnectionString =
                    @"Driver={Microsoft Access Driver (*.mdb, *.accdb)};" +
                    @"Dbq=C:\Users\Public\Database1.accdb;";

            using (var con = new OdbcConnection())
            {
                con.ConnectionString = myConnectionString;
                con.Open();

                using (var cmd = new OdbcCommand())
                {
                    cmd.Connection = con;
                    cmd.CommandType = System.Data.CommandType.Text;
                    cmd.CommandText =
                            @"INSERT INTO Items " +
                            @"SELECT * FROM [Text;FMT=Delimited;HDR=NO;IMEX=2;CharacterSet=437;ACCDB=YES;Database=C:\Users\Public].[Items#csv];";
                    cmd.ExecuteNonQuery();
                }
                con.Close();
            }
        }
    }
}
于 2013-10-06T12:59:41.777 に答える