Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CsvReader-将数据添加到sqlite_Sqlite_Csv_Lumenworks - Fatal编程技术网

CsvReader-将数据添加到sqlite

CsvReader-将数据添加到sqlite,sqlite,csv,lumenworks,Sqlite,Csv,Lumenworks,我对所有这些都不熟悉,但一个快速的学习过程正在进行中 我一直在四处寻找,但无法拼凑出我需要的东西 我正在使用Lumenworks CsvReader读取csv文件中的数据-到目前为止还不错,我看到了数据。接下来,我需要将这些数据传递到SQLite中 我陷入困境的地方是试图以循环的方式将这些信息传递到我的INSERT语句中,希望这里的人能帮助我 我知道错误在我的循环中,(我知道格式可能是错误的),但我无法解决这个问题。谢谢你事先的帮助 以下是我目前的代码: command.CommandT

我对所有这些都不熟悉,但一个快速的学习过程正在进行中

我一直在四处寻找,但无法拼凑出我需要的东西

我正在使用Lumenworks CsvReader读取csv文件中的数据-到目前为止还不错,我看到了数据。接下来,我需要将这些数据传递到SQLite中

我陷入困境的地方是试图以循环的方式将这些信息传递到我的INSERT语句中,希望这里的人能帮助我

我知道错误在我的循环中,(我知道格式可能是错误的),但我无法解决这个问题。谢谢你事先的帮助

以下是我目前的代码:

    command.CommandText = @"CREATE TABLE [Test] ([Code] VARCHAR(50) PRIMARY KEY  NOT NULL , [Description] VARCHAR(100),[RRP] NUMERIC DEFAULT (null) ,[Points] NUMERIC, [Buy] NUMERIC DEFAULT (null) )";
    command.ExecuteNonQuery();

    string insertText = "INSERT INTO [Test] ([Code],[Description],[RRP],[Points],[Buy]) VALUES(@Code,@Description,@RRP,@Points,@Buy)";

        SQLiteTransaction trans = conn.BeginTransaction();
        command.Transaction = trans;

        command.CommandText = insertText;

        using (CsvReader csv = new CsvReader(new StreamReader(@"C:\Data.csv"), true))
        {
            int fieldCount = csv.FieldCount;

            string[] headers = csv.GetFieldHeaders();

            while (csv.ReadNextRecord())
            {
                for (int i = 0; i < fieldCount; i++)
                    command.Parameters.AddWithValue("@Code", csv[i]);
                    command.Parameters.AddWithValue("@Description", csv[i]);
                    command.Parameters.AddWithValue("@RRP", csv[i]);
                    command.Parameters.AddWithValue("@Points", csv[i]);
                    command.Parameters.AddWithValue("@Buy", csv[i]);

                command.ExecuteNonQuery();
            }
        }
command.CommandText=@“创建表[Test]([code]VARCHAR(50)主键不为NULL,[Description]VARCHAR(100),[RRP]数值默认值(NULL),[Points]数值,[Buy]数值默认值(NULL));
command.ExecuteNonQuery();
string insertText=“插入[Test]([Code]、[Description]、[RRP]、[Points]、[Buy])值(@Code、@Description、@RRP、@Points、@Buy)”;
SQLiteTransaction=conn.BeginTransaction();
command.Transaction=trans;
command.CommandText=插入文本;
使用(CsvReader csv=new CsvReader(new StreamReader(@“C:\Data.csv”),true))
{
int fieldCount=csv.fieldCount;
string[]headers=csv.GetFieldHeaders();
而(csv.ReadNextRecord())
{
对于(int i=0;i
您看到了什么错误?我现在在执行命令时收到了一个SQLiteException,其中有“constraint failed”的详细信息,这是AddWithValue部分的duw,因为我知道我对csv[i]的语法错误..但我的知识太有限,不知道该放什么。请告诉我们哪个CSV列应该放在哪个参数中。Hi CL-应该都是有序的-所以第1列放在代码中,第2列放在描述中,第3列放在RRP中,第4列放在积分中,第5列放在购买中。-谢谢你花时间看这个。