c#-将Excel文件逐行导入SQL Server
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#-将Excel文件逐行导入SQL Server,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2340字,纯文字阅读大概需要4分钟。
内容图文
我正在将Excel文件(仅约1000条记录)导入专用的SQL Server数据库.因为我需要处理来自Excel的传入数据(每行添加一个GUID,进行一些数据转换),所以我想逐行执行此操作,并且不想批量导入(但是我对交易没有任何帮助).
我对如何正确执行感到困惑.我可以使用带有以下参数的SQLCommand:
SqlCommand sqlCommand = new SqlCommand("insert into TestTable(GUID,Name,Pricing) values(@GUID,@Name,@Pricing)", sqlConn);
foreach (DataRow dr in ds.Tables[0].Rows) //<-- this is my Excel file to iterate through
{
sqlCommander.Parameters.Clear();
String refGUID = Guid.NewGuid().ToString();
sqlCommander.Parameters.AddWithValue("GUID", refGUID);
sqlCommander.Parameters.AddWithValue("Name", dr.ItemArray[0]);
sqlCommander.Parameters.AddWithValue("Pricing", dr.ItemArray[1]);
sqlCommander.ExecuteNonQuery();
}
或者,我可以像这样使用“连接”模式:
SqlDataAdapter dataAdapter = new SqlDataAdapter("SELECT GUID, Name, Pricing FROM TestTable", sqlConn);
SqlCommandBuilder commandBuilder = new SqlCommandBuilder(dataAdapter);
DataSet myDataSet = new DataSet();
dataAdapter.Fill(myDataSet, "TestTable");
foreach (DataRow dr in ds.Tables[0].Rows) //<-- this is my Excel file to iterate through
{
DataRow row = myDataSet.Tables[0].NewRow();
row["GUID"] = refGUID;
row["Name"] = dr.ItemArray[0];
row["Pricing"] = dr.ItemArray[1];
myDataSet.Tables[0].Rows.Add(row);
dataAdapter.Update(myDataSet);
}
现在我的问题如下:
>最好为每行发送INSERT命令(这将是SqlCommand方法),还是填充特殊的DataSet(第二方法)更好?我想对SQL Server进行1000次插入是“愚蠢的”吗?
> dataAdapter.Update(myDataSet)<-在遍历所有Excel行或每一行之后是否应该执行此操作(如上面的示例代码所示),这会神奇地创建事务吗?
>应该使用哪种方法?还有LINQ to SQL-为什么不使用它(性能可能由于另一层而定)?
>当读取Excel文件时发生某些错误时,数据集会发生什么-更新是否仍推送到SQL Server或所有内容丢失了?
简而言之:我想逐行将Excel文件导入到SQL Server,同时对要导入的数据进行更改(而且我不想使用SSIS包[因为除了数据转换外,我还要做很多事情与Excel文件一样,例如将其导入到Sharepoint并触发工作流]或BizTalk)
»»如何做得漂亮?
最终,我继续前进,购买了Aspose Cells.Aspose有一套非常好的工具可供使用.
解决方法:
您提到不想使用SSIS-但您是否考虑了SqlBulkCopy?然后,除了.NET不需要任何东西,但您仍然可以使用最快/最直接的导入.
这将接受一个DataTable,因此您可以在DataTable中准备数据,然后拉动触发器.可以选择支持IIRC事务.对于较大的数据,您还可以实现IDataReader以提供完全流式上载(同时仍在处理传输中的每一行).
内容总结
以上是互联网集市为您收集整理的c#-将Excel文件逐行导入SQL Server全部内容,希望文章能够帮你解决c#-将Excel文件逐行导入SQL Server所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。