CsvReader - 将数据添加到sqlite中

时间:2015-06-11 11:23:59

标签: sqlite csv lumenworks

对所有这些都是新手,但正在快速学习曲线。

我一直在寻找,但不能拼凑我需要的东西。

我正在使用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();
            }
        }

0 个答案:

没有答案