通过 C# 代码从 CSV 文件插入访问表

Posted

技术标签:

【中文标题】通过 C# 代码从 CSV 文件插入访问表【英文标题】:INSERT INTO Access table from CSV file via C# code 【发布时间】:2013-10-06 11:56:48 【问题描述】:

我有这张桌子:

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.

如何解决这个问题?

【问题讨论】:

你的SQL在调试时是什么样子的? 您知道您有 d:\Items.csv,并且在您的代码中您有 Items.txt?文件存在吗? 【参考方案1】:

以下 C# 代码适用于我。它将C:\Users\Public\Items.csv 导入到我的Access 2010 数据库C:\Users\Public\Database1.accdb 中名为[Items] 的表中。 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();
            
        
    

【讨论】:

以上是关于通过 C# 代码从 CSV 文件插入访问表的主要内容,如果未能解决你的问题,请参考以下文章

如何通过按钮单击将数据导出到 linq c# 中的 .csv 文件

salesforce 零基础学习(五十五)java通过SOAP方式定时访问某个文件然后插入到sObject中

自动将 csv 文件插入 mysql 表

通过php访问时csv文件的偏移量?

通过 C# 应用程序访问 Siemens S7-1200

C# asp.net mvc 下载表到csv