Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.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
C# 如何在c中用列表值填充SQlite列#_C#_Sqlite_List - Fatal编程技术网

C# 如何在c中用列表值填充SQlite列#

C# 如何在c中用列表值填充SQlite列#,c#,sqlite,list,C#,Sqlite,List,背景: 这里没有——不管怎样,我正在构建一个c#forms应用程序,它可以解析文本文件中的数据。我已将纺织品数据存储在列表中 问题: 我不知道如何用这些数据填充sqlite表。如何将列表数据传输到sqlite表中的列中 SQlite代码: (以下摘自finisar) 这就是我想要将列表数据传输到sqlite表的地方: sqlite_cmd.CommandText=“插入测试(id,文本)值(1,'测试文本1');” 我不知道具体在哪里,或者如何在这里实现foreach循环语法 感谢您上面的代码,

背景:

这里没有——不管怎样,我正在构建一个c#forms应用程序,它可以解析文本文件中的数据。我已将纺织品数据存储在列表中

问题

我不知道如何用这些数据填充sqlite表。如何将列表数据传输到sqlite表中的列中

SQlite代码: (以下摘自finisar)

这就是我想要将列表数据传输到sqlite表的地方: sqlite_cmd.CommandText=“插入测试(id,文本)值(1,'测试文本1');”

我不知道具体在哪里,或者如何在这里实现foreach循环语法


感谢您上面的代码,您可能会注意到以下部分重复:

    sqlite_cmd.CommandText = "INSERT INTO test (id, text) VALUES (..., ...);";
    sqlite_cmd.ExecuteNonQuery();
所以,在这里,你必须使用一个循环

根据您阅读文本的方式,必须使用适当的循环

这是一个使用
TextReader
的示例:

using (StreamReader reader = File.OpenText("somefile.txt")) {
    //Use a transaction: you should do bulk inserts inside transactions
    DbTransaction tr = sqlite_conn.BeginTransaction();
    //Create a command once.
    DbCommand cmd = sqlite_conn.CreateCommand();
    //Assign SQL with parameters (?)
    cmd.CommandText = "INSERT INTO test (id, text) VALUES (?, ?);"
    string line;
    int line_num;
    //Read all lines from file
    for (line_num=0; (line = reader.ReadLine()) != null; ++line_num) {
        //For each line, assign correct parameters
        cmd.Parameters(0).Value=line_num;
        cmd.Parameters(1).Value=line;
        //Send command to database
        cmd.ExecuteNonQuery();
    }
    //Commit - only at this point data is written to database
    tr.Commit();
}

您应该使用参数并重用相同的命令。您应该在哪里使用foreach???是不是很明显?就像我说的,这里没有,所以不明显。我想我应该使用foreach将列表值不断输入到sql表中。
using (StreamReader reader = File.OpenText("somefile.txt")) {
    //Use a transaction: you should do bulk inserts inside transactions
    DbTransaction tr = sqlite_conn.BeginTransaction();
    //Create a command once.
    DbCommand cmd = sqlite_conn.CreateCommand();
    //Assign SQL with parameters (?)
    cmd.CommandText = "INSERT INTO test (id, text) VALUES (?, ?);"
    string line;
    int line_num;
    //Read all lines from file
    for (line_num=0; (line = reader.ReadLine()) != null; ++line_num) {
        //For each line, assign correct parameters
        cmd.Parameters(0).Value=line_num;
        cmd.Parameters(1).Value=line;
        //Send command to database
        cmd.ExecuteNonQuery();
    }
    //Commit - only at this point data is written to database
    tr.Commit();
}