Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.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# 如何在不损失SQLITE+C性能的情况下插入多行_C#_Sqlite_Windows Phone 8.1 - Fatal编程技术网

C# 如何在不损失SQLITE+C性能的情况下插入多行

C# 如何在不损失SQLITE+C性能的情况下插入多行,c#,sqlite,windows-phone-8.1,C#,Sqlite,Windows Phone 8.1,我的应用程序在第一次启动时需要插入221行,因此,我正在失去性能,因为我正在使用数组来插入它。例如 这样,我的性能损失很大,所以,我如何使用其他方法来修复它 可以使用StringBuilder类和string.Format函数来构建sql语句,以便在foreach循环中插入值吗?好的,我将对此进行搜索。。您听说过RunInTransactionAsync吗?请将插入内容包装到事务中。只需在插入值之前发送一个开始查询,然后发送一个结束查询。@SplittyDev现在,我正在搜索该方法。。。RunI

我的应用程序在第一次启动时需要插入221行,因此,我正在失去性能,因为我正在使用数组来插入它。例如

这样,我的性能损失很大,所以,我如何使用其他方法来修复它


可以使用StringBuilder类和string.Format函数来构建sql语句,以便在foreach循环中插入值吗?好的,我将对此进行搜索。。您听说过RunInTransactionAsync吗?请将插入内容包装到事务中。只需在插入值之前发送一个开始查询,然后发送一个结束查询。@SplittyDev现在,我正在搜索该方法。。。RunInTransactionAsync方法。。。但是我不知道如何使用。。。这个概念是。。。启动事务>插入值>结束事务?我将给您一个示例:开始;在某物中插入x,y值1,2。。。这里有更多的插入。。。;终止
 private async Task insereHinos()
    {
        var local = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "hinos.sqlite");
        SQLiteAsyncConnection con = new SQLiteAsyncConnection(local, SQLiteOpenFlags.Create | SQLiteOpenFlags.ReadWrite);
        await con.CreateTableAsync<hinos>();

        variaveis variavel = new variaveis();
        for (var i = 0; i < 221; i++)
        {
            var hino = new hinos() { numHino = variavel.numeroHinos[i], favHino = variavel.favHinos, nomeHino = variavel.nomeHinos[i], catHino = variavel.categoriaHinos[i], letraHino = variavel.letraHinos[i] };
            await con.InsertAsync(hino);

        }

    }