C#批量修改数据库中的数据
导入excel,保存到datetable中,将datetable中的字段信息批量更新的数据库中,该如何实现,求帮助 --------------------编程问答-------------------- 数量大不?不大就老实的循环更新拼语句吧。 --------------------编程问答-------------------- 那还不如你直接修改excel然后直接批量导入数据库 --------------------编程问答-------------------- insert into TargetTable(field1,field2)
select field1,field2 from ImportTable --------------------编程问答-------------------- 之前也遇到过这个问题,http://blog.csdn.net/gisfarmer/article/details/3738959找到这个,可以连接EXCEL,读取数据,然后,对数据库部分操作,就自己写吧。因为数据都读出来了,其他问题应该不难了。 --------------------编程问答--------------------
我以前做过导入
弱弱的问一句,数据量大的话该怎么处理,还是用循环,不仅效率低,而且导入后数据是乱的~ --------------------编程问答-------------------- http://blog.csdn.net/xianfajushi/article/details/8578495 --------------------编程问答-------------------- 通过SQL语句查询导入的Excel,然后把查询到的Excel存放在DataTable中,方法如:
/// <summary>
/// 从Excel文件中得到数据
/// </summary>
/// <param name="file"></param>
/// <returns></returns>
public DataTable GetTableFromExcel(HttpPostedFile Excelfile)
{
DataTable DT = new DataTable();
try
{
if (Excelfile.FileName.Substring(Excelfile.FileName.LastIndexOf('.') + 1).Trim().ToLower() != "xls")
{
Page.ClientScript.RegisterStartupScript(this.GetType(),"alert", "<script type='text/javascript'>alert('文件格式不正确(系统识别格式Excel)!');</script>");
return DT;
}
string FilePath = Server.MapPath(".") + DateTime.Now.Ticks.ToString() + ".xls";
Excelfile.SaveAs(FilePath);
string strCon = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FilePath + ";Extended Properties=Excel 8.0";
OleDbConnection myConn = new OleDbConnection(strCon);
myConn.Open(); //打开数据链接,得到一个数据集
DataSet myDataSet = new DataSet(); //得到自己的DataSet对象
string StrSql = "select * from [sheet1$]";
OleDbDataAdapter myCommand = new OleDbDataAdapter(StrSql, myConn); //创建一个 DataSet对象
myCommand.Fill(myDataSet, "sheet1");
myCommand.Dispose();
DT = myDataSet.Tables["sheet1"];
myConn.Close();
myCommand.Dispose();
if (File.Exists(FilePath))
{
File.Delete(FilePath);
}
}
catch (Exception ex)
{
throw ex;
}
return DT;
}
对该方法稍加改动即可实现你的要求!(自己尝试一下!) --------------------编程问答-------------------- 如果数据量比较大怎么处理? --------------------编程问答-------------------- 在多线程中使用SqlBulkCopy类
将100万条数据分五个线程,每个线程负责20万条数据,每5万条一个事物,五个线程同时启动,看看这样的效果吧。
SQL 2000耗时:7682
SQL 2008耗时:10870
--------------------编程问答-------------------- 采取多线程效果也并不一定好 --------------------编程问答-------------------- 实现大批量Excel数据导入SQL SERVER
http://www.doc88.com/p-481336394475.html
不过感觉楼主要是没有几十上百万条数据,用普通的方法肯定也没有问题 --------------------编程问答-------------------- 你可以把EXCEL以手动的方式导入到数据库中,然后在从数据库读取数据到datatable中,进行修改,最后执行一条更新语句
补充:.NET技术 , C#