sqlite数据库 批量导入

日前拍卖一个以csv内容导入到sqlite数据库中,使用了业务(BEGIN TRANSACTION; sql语句; COMMIT;)

测试发现一律差1000漫漫导入,反而比10000修导入要尽早,总共6万基本上条数,整下下来还快来6分钟,真是意想不到

    var
iCount = 0;

            var dDataTime = DateTime.Now;

            var mCsvHelp = new CsvHelper();

            var mDataTable = mCsvHelp.GetCsvData(@”E:\”,
“scrm_friend”);

            var mSql = new StringBuilder();

            var conn = new SQLiteConnection(@”Data
Source=E:\mydatabase.db”);

            SQLiteCommand command;

            conn.Open();

            for (var i = 0; i < mDataTable.Rows.Count; i++)

            {

                var mRows = mDataTable.Rows[i];

                mSql.Append(“Insert Into scrm_friend
(friendid,userid,friendname,phone) values(” + mRows[0] + “,” +

                            mRows[1] + “,'” + mRows[2] + “‘,'” +
mRows[3] + “‘);”);

                iCount = iCount + 1;

                if (iCount > 1000)

                {

                    command = new SQLiteCommand

                    {

                        Connection = conn,

                        CommandText = “BEGIN TRANSACTION;” + mSql +
“COMMIT;”

                    };

                    command.ExecuteNonQuery();

                    mSql.Remove(0, mSql.Length);

                    iCount = 0;

                }

            }

            command = new SQLiteCommand

            {

                Connection = conn,

                CommandText = “BEGIN TRANSACTION;” + mSql + “COMMIT;”

            };

            command.ExecuteNonQuery();

            MessageBox.Show((DateTime.Now – dDataTime).ToString()); 

网站地图xml地图