Esempio n. 1
0
        public void TestBulkInsert()
        {
            TestSuit.RemoveDb();
            TestSuit.CreateDb();

            var connStr = $"Data Source={TestSuit.FilePath}";
            var helper  = new SqliteHelper();

            var createTableSql = "CREATE TABLE `TestDb` (`Id` INTEGER, `Name` TEXT);";

            helper.ExecuteNonQuery(connStr, CommandType.Text, createTableSql);

            // 测试1000000条数据插入需要长时间
            var table = new DataTable();

            table.Columns.Add("Id", typeof(int));
            table.Columns.Add("Name", typeof(string));

            var count = 1000000;

            for (int i = 0; i < count; i++)
            {
                table.Rows.Add(i, $"Test{i}");
            }

            var stopWatch = new Stopwatch();

            stopWatch.Start();

            helper.BulkInsert(connStr, "TestDb", table);

            stopWatch.Stop();

            Console.WriteLine(stopWatch.Elapsed.TotalSeconds);

            var id = helper.ExecuteScalar(connStr, CommandType.Text, "SELECT Id FROM TestDb ORDER BY Id DESC");

            id.Should().Equals(count - 1);

            helper = null;
            GC.Collect();
            Thread.Sleep(1000);
            TestSuit.RemoveDb();
        }