最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

C#+SqlServer2008使用XML大批量数据入库

来源:动视网 责编:小采 时间:2020-11-09 08:10:29
文档

C#+SqlServer2008使用XML大批量数据入库

C#+SqlServer2008使用XML大批量数据入库:首先在 数据 库里新建存储过程: create Procedure lcw_test--Author:lcw--Description:--DateTime:2012-10-12@xml nvarchar(max)ASbegin declare @idHandle int EXEC sp_xml_preparedocument @idHandl
推荐度:
导读C#+SqlServer2008使用XML大批量数据入库:首先在 数据 库里新建存储过程: create Procedure lcw_test--Author:lcw--Description:--DateTime:2012-10-12@xml nvarchar(max)ASbegin declare @idHandle int EXEC sp_xml_preparedocument @idHandl


首先在 数据 库里新建存储过程: create Procedure lcw_test--Author:lcw--Description:--DateTime:2012-10-12@xml nvarchar(max)ASbegin declare @idHandle int EXEC sp_xml_preparedocument @idHandle OUTPUT, @xml --创建xml的句柄 --print @idHandle INS

首先在数据库里新建存储过程:

create Procedure lcw_test
--Author:lcw
--Description:
--DateTime:2012-10-12
@xml nvarchar(max)
AS
begin
 declare @idHandle int
 EXEC sp_xml_preparedocument @idHandle OUTPUT, @xml --创建xml的句柄
 --print @idHandle 
 
 INSERT INTO t_test (ID,name,Msg,SaveTime)
 SELECT ID,name,Msg,SaveTime FROM OPENXML(@idHandle,N'/root/t_test') with t_test
 
 IF @@ERROR=0
 BEGIN
 SELECT 1
 END
 ELSE
 BEGIN
 SELECT 0
 END
 
 EXEC sp_xml_removedocument @idHandle --xml文档会存储在sqlserver的缓存中,为了避免内存不足,执行该语句 以释放内存。
 END


然后是C#代码:

 private void button14_Click(object sender, EventArgs e)
 {
 List ce = TETS();
 XmlDocument document = new XmlDocument();
 XmlElement root = document.CreateElement("root");
 document.AppendChild(root);
 foreach (lcw_test personEntity in ce)
 {
 XmlElement xmlPerson = document.CreateElement("t_test");
 xmlPerson.SetAttribute("ID",personEntity.ID.ToString());
 xmlPerson.SetAttribute("name", personEntity.Name);
 xmlPerson.SetAttribute("Msg", personEntity.Msg);
 xmlPerson.SetAttribute("SaveTime", personEntity.Dt.ToString()); 
 root.AppendChild(xmlPerson);
 }
 SqlParameter[] parameters = null;
 parameters = new SqlParameter[] { new SqlParameter("@xml", document.InnerXml) };
 try
 {
 using (SqlConnection conn = new SqlConnection("server=.;database=test;user=sa;pwd=lcw;"))
 {
 conn.Open();
 using (SqlCommand cmd = conn.CreateCommand())
 {
 cmd.CommandText = "lcw_test";
 cmd.CommandType = CommandType.StoredProcedure;
 cmd.Parameters.AddRange(parameters);
 int cccc = Convert.ToInt32(cmd.ExecuteNonQuery());

 }
 }
 
 }
 catch (Exception ex)
 {
 throw ex;
 }

 }
 List TETS()
 {
 List ce = new List();
 lcw_test c = null;
 for (int i = 0; i < 5000; i++)
 {
 ce.Add(c = new lcw_test { ID = Guid.NewGuid(), Name = "Name" + i, Msg = "Msg" + i, Dt = DateTime.Now });
 }
 return ce;
 }
public class lcw_test
 {
 public Guid ID { get; set; }
 public string Name { get; set; }
 public string Msg { get; set; }
 public DateTime Dt { get; set; }
 }


文档

C#+SqlServer2008使用XML大批量数据入库

C#+SqlServer2008使用XML大批量数据入库:首先在 数据 库里新建存储过程: create Procedure lcw_test--Author:lcw--Description:--DateTime:2012-10-12@xml nvarchar(max)ASbegin declare @idHandle int EXEC sp_xml_preparedocument @idHandl
推荐度:
标签: 批量 使用 数据
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top