相关疑难解决方法(0)

C#中的批量更新

为了在数据库中插入大量数据,我曾经将所有插入信息收集到列表中并将此列表转换为a DataTable.然后我通过将该列表插入数据库SqlBulkCopy.

我发送生成的列表
LiMyList
,其中包含我要插入数据库的所有批量数据的信息,并将其
传递给我的批量插入操作

InsertData(LiMyList, "MyTable");
Run Code Online (Sandbox Code Playgroud)

哪里InsertData

 public static void InsertData<T>(List<T> list,string TableName)
        {
                DataTable dt = new DataTable("MyTable");
                clsBulkOperation blk = new clsBulkOperation();
                dt = ConvertToDataTable(list);
                ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);
                using (SqlBulkCopy bulkcopy = new SqlBulkCopy(ConfigurationManager.ConnectionStrings["SchoolSoulDataEntitiesForReport"].ConnectionString))
                {
                    bulkcopy.BulkCopyTimeout = 660;
                    bulkcopy.DestinationTableName = TableName;
                    bulkcopy.WriteToServer(dt);
                }
        }    

public static DataTable ConvertToDataTable<T>(IList<T> data)
        {
            PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(typeof(T));
            DataTable table = new DataTable();
            foreach (PropertyDescriptor prop in properties)
                table.Columns.Add(prop.Name, Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType);
            foreach (T item in data) …
Run Code Online (Sandbox Code Playgroud)

.net c# sql-server bulk

58
推荐指数
3
解决办法
8万
查看次数

SQLBulkCopy的任何方式"插入或更新,如果存在"?

我需要定期更新一个非常大的表,SQLBulkCopy是完美的,只有我有一个2列索引,可以防止重复.有没有办法使用SQLBulkCopy作为"插入或更新,如果存在"?

如果没有,最有效的方法是什么?我再次谈论一张包含数百万条记录的表格.

谢谢

.net c# sql sql-server performance

21
推荐指数
4
解决办法
4万
查看次数

使用SQLBulkCopy插入/更新数据库

我有一个带记录的数据表.我正在使用SqlBulkCopy将记录插入到Sql表中.它运行正常.下一次获取具有相同记录且几乎没有更改值的数据表时,SqlBulkCopy正在插入另一组记录而不更新以前的详细信息.如何我可以使用SqlBulkCopy更新Sql表吗?请帮忙.

谢谢,Vix

asp.net sqlbulkcopy

9
推荐指数
1
解决办法
1万
查看次数

如何最有效地插入/更新SQL Server中的几百万行?

我有一个程序正在读取文本文件来更新/插入行.我在下面尝试了以下伪代码方法.这些都非常慢.我直接在SQL Server本身上运行此代码,这些过程都需要花费数小时才能完成...

更新/插入语句的数量大约为数百万.在.net c#中运行那么多SQL语句的最有效方法是什么?

// Insert/Update while reading text file
While (reader.read)
{
   sql.ExecuteNonQuery();
}
Run Code Online (Sandbox Code Playgroud)

要么...

// build a list to loop through later and insert/update
While (reader.read)
{
   List.Add(sql);
}

foreach(string s in sql)
{
   sql.ExecuteNonQuery();
}
Run Code Online (Sandbox Code Playgroud)

要么...

// Build a list and run 1000 statements at one time
While (reader.read)
{
   List.Add(sql);
   if(List.Count == 1000)
   {
      sql.ExecuteNonQuery();
   }
}
Run Code Online (Sandbox Code Playgroud)

c# sql insert bigdata

1
推荐指数
1
解决办法
913
查看次数

标签 统计

c# ×3

.net ×2

sql ×2

sql-server ×2

asp.net ×1

bigdata ×1

bulk ×1

insert ×1

performance ×1

sqlbulkcopy ×1