解决方案 »

  1.   

    我修改了关键部分代码如下:
    private static Stopwatch InsertUsingSqlBulkCopy(List<UserInMemory> list)
            {
                Stopwatch stopWatch = new Stopwatch();
                stopWatch.Start();
                DataTable dt = new DataTable();
                dt.Columns.Add("ID");
                dt.Columns.Add("UserName");
                for (int i = 0; i < list.Count; i++)
                {
                    DataRow row = dt.NewRow();
                    row["ID"] = list[i].ID;
                    row["UserName"] = list[i].UserName;
                    dt.Rows.Add(row);
                }
                using (SqlConnection con = new SqlConnection(connStr))
                {
                    con.Open();
                    using (SqlBulkCopy bulkCopy = new SqlBulkCopy(con))
                    {
                        try
                        {
                            bulkCopy.DestinationTableName = "User";
                            bulkCopy.ColumnMappings.Add("ID", "ID");
                            bulkCopy.ColumnMappings.Add("UserName", "UserName");
                            bulkCopy.WriteToServer(dt);
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(ex.ToString());
                        }
                        finally { con.Close(); }
                    }
                }
                stopWatch.Stop();
                return stopWatch;
            }数据库截图如下:
    结果图如下:
    我翻墙,搜了谷歌,看了前两页的所有英文贴。
    因素大致如下:
    1 表和表结构要存在
    2 权限:选择权、读取权限
    3 索引(indexing)?这个不明白,我只有主键
    都尝试过,还是解决不了,求各位大鸟指教