更新时间:2023-11-30 20:18:22
请遵循以下
查找.cs代码
使用系统;
使用System.Collections;
使用System.Configuration;
使用System.Data;
使用System.Linq;
使用System.Web;
使用System.Web.Security;
使用System.Web.UI;
使用System.Web.UI.HtmlControls;
使用System.Web.UI.WebControls;
使用System.Web.UI.WebControls.WebParts;
使用System.Xml.Linq;
使用System.Collections.Generic;
使用System.Text;
使用System.Data.SqlClient;
公共静态类ListExtension
{
公共静态字符串ToXMLString(此列表< userimage>列表)
{
StringBuilder sb = new StringBuilder();
sb.Append(< userimages>");
foreach(列表中的UserImage图像)
{
sb.Append(image.ToString());
}
sb.Append(");
返回sb.ToString();
}
}
公共类UserImage
{
公开长号{放; }
公共长UserId {放; }
公共字符串OriginalName {get;放; }
公用字符串StorageName {get;放; }
public UserImage(){}
公共UserImage(长id,长userId,字符串originalName,字符串storageName)
{
this.Id = id;
this.OriginalName = originalName;
this.StorageName = storageName;
this.UserId = userId;
}
公共重写字符串ToString()
{
返回string.Format(< userimage hashcode =" \"{0} \""=""id =" \"{1} \""=""userid =" \"{2} \""=" "originalname =" \"{3} \""=""storagename =" \"{4} \""=" =>",
this.GetHashCode(),this.Id,this.UserId,this.OriginalName,this.StorageName);
}
}
公共局部类InsertingCollection:System.Web.UI.Page
{
受保护的void Page_Load(对象发送者,EventArgs e)
{
列出< userimage> imageList =新列表< userimage>();
imageList.Add(新的UserImage(1,786,"Test1.jpg",@"C:\ Temp \ User_786_1.jpg"));
imageList.Add(新的UserImage(2,786,"Test2.jpg",@"C:\ Temp \ User_786_2.jpg"));
imageList.Add(新的UserImage(3,786,"Test3.jpg",@"C:\ Temp \ User_786_3.jpg"));
imageList.Add(新的UserImage(4,786,"Test4.jpg",@"C:\ Temp \ User_786_4.jpg"));
imageList.Add(新的UserImage(5,786,"Test5.jpg",@"C:\ Temp \ User_786_5.jpg"));
imageList.Add(新的UserImage(6,786,"Test6.jpg",@"C:\ Temp \ User_786_6.jpg"));
//出于测试目的
Response.ContentType ="text/xml";
Response.Write(imageList.ToXMLString());
DataManager.InsertUserImage(imageList.ToXMLString());
}
}
公共静态类DataManager
{
内部静态void InsertUserImage(string userImages)
{
使用(SqlConnection con = new SqlConnection("[YOUR_CONNECTION_STRING]"))
{
SqlCommand cmd = con.CreateCommand();
SqlParameter param =新的SqlParameter();
cmd.CommandText ="[STOREDPROCEDURE_NAME" ;;
cmd.CommandType = CommandType.StoredProcedure;
param.ParameterName ="@UserImages";
param.Value = userImages;
param.DbType = DbType.Xml;
cmd.Parameters.Add(param);
cmd.ExecuteNonQuery();
con.Close();
}
}
}
并在sql服务器端代码
将@UserImages声明为XML
SELECT @UserImages =
''< userimages>
< userimage hashcode ="60272281" id ="1" userid ="786" originalname ="Test1.jpg" storagename ="C:\ Temp \ User_786_1.jpg">
< userimage hashcode ="55244443" id ="2" userid ="786" originalname ="Test2.jpg" storagename ="C:\ Temp \ User_786_2.jpg">
< userimage hashcode ="50429688" id ="3" userid ="786" originalname ="Test3.jpg" storagename ="C:\ Temp \ User_786_3.jpg">
< userimage hashcode ="54351321" id ="4" userid ="786" originalname ="Test4.jpg" storagename ="C:\ Temp \ User_786_4.jpg">
< userimage hashcode ="13811662" id ="5" userid ="786" originalname ="Test5.jpg" storagename ="C:\ Temp \ User_786_5.jpg">
< userimage hashcode ="29407249" id ="6" userid ="786" originalname ="Test6.jpg" storagename ="C:\ Temp \ User_786_6.jpg">
''
设置NOCOUNT ON
声明@UserImageTable AS TABLE
(
ID BIGINT,
UserId BIGINT,
OriginalName VARCHAR(100),
StorageName VARCHAR(100)
)
插入@UserImageTable
选择
--UserImage.value(``@HashCode [1]'',``VARCHAR(10)'')作为HashCode,
UserImage.value(``@Id [1]'',``VARCHAR(10)'')作为ID,
UserImage.value(``@UserId [1]'',``VARCHAR(10)'')作为UserId,
UserImage.value(``@OriginalName [1]'',``VARCHAR(100)'')作为OriginalName,
UserImage.value(''@StorageName [1]'',``VARCHAR(100)'')作为StorageName
来自
@ UserImages.nodes(''/UserImages/UserImage'')v(UserImage)
SELECT * FROM @UserImageTable
这是解决方案
please follow as below
find .cs code
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
public static class ListExtension
{
public static string ToXMLString(this List<userimage> list)
{
StringBuilder sb = new StringBuilder();
sb.Append("<userimages>");
foreach (UserImage image in list)
{
sb.Append(image.ToString());
}
sb.Append("");
return sb.ToString();
}
}
public class UserImage
{
public long Id { get; set; }
public long UserId { get; set; }
public string OriginalName { get; set; }
public string StorageName { get; set; }
public UserImage() { }
public UserImage(long id, long userId, string originalName, string storageName)
{
this.Id = id;
this.OriginalName = originalName;
this.StorageName = storageName;
this.UserId = userId;
}
public override string ToString()
{
return string.Format("<userimage hashcode="\" {0}\""="" id="\" {1}\""="" userid="\" {2}\""="" originalname="\" {3}\""="" storagename="\" {4}\""="">",
this.GetHashCode(), this.Id, this.UserId, this.OriginalName, this.StorageName);
}
}
public partial class InsertingCollection : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
List<userimage> imageList = new List<userimage>();
imageList.Add(new UserImage(1, 786, "Test1.jpg", @"C:\Temp\User_786_1.jpg"));
imageList.Add(new UserImage(2, 786, "Test2.jpg", @"C:\Temp\User_786_2.jpg"));
imageList.Add(new UserImage(3, 786, "Test3.jpg", @"C:\Temp\User_786_3.jpg"));
imageList.Add(new UserImage(4, 786, "Test4.jpg", @"C:\Temp\User_786_4.jpg"));
imageList.Add(new UserImage(5, 786, "Test5.jpg", @"C:\Temp\User_786_5.jpg"));
imageList.Add(new UserImage(6, 786, "Test6.jpg", @"C:\Temp\User_786_6.jpg"));
//For testing purpose
Response.ContentType = "text/xml";
Response.Write(imageList.ToXMLString());
DataManager.InsertUserImage(imageList.ToXMLString());
}
}
public static class DataManager
{
internal static void InsertUserImage(string userImages)
{
using (SqlConnection con = new SqlConnection("[YOUR_CONNECTION_STRING]"))
{
SqlCommand cmd = con.CreateCommand();
SqlParameter param = new SqlParameter();
cmd.CommandText = "[STOREDPROCEDURE_NAME";
cmd.CommandType = CommandType.StoredProcedure;
param.ParameterName = "@UserImages";
param.Value = userImages;
param.DbType = DbType.Xml;
cmd.Parameters.Add(param);
cmd.ExecuteNonQuery();
con.Close();
}
}
}
and at the sql server side code
Declare @UserImages as XML
SELECT @UserImages =
'' <userimages>
<userimage hashcode="60272281" id="1" userid="786" originalname="Test1.jpg" storagename="C:\Temp\User_786_1.jpg">
<userimage hashcode="55244443" id="2" userid="786" originalname="Test2.jpg" storagename="C:\Temp\User_786_2.jpg">
<userimage hashcode="50429688" id="3" userid="786" originalname="Test3.jpg" storagename="C:\Temp\User_786_3.jpg">
<userimage hashcode="54351321" id="4" userid="786" originalname="Test4.jpg" storagename="C:\Temp\User_786_4.jpg">
<userimage hashcode="13811662" id="5" userid="786" originalname="Test5.jpg" storagename="C:\Temp\User_786_5.jpg">
<userimage hashcode="29407249" id="6" userid="786" originalname="Test6.jpg" storagename="C:\Temp\User_786_6.jpg">
''
SET NOCOUNT ON
DECLARE @UserImageTable AS TABLE
(
Id BIGINT,
UserId BIGINT,
OriginalName VARCHAR(100),
StorageName VARCHAR(100)
)
INSERT INTO @UserImageTable
SELECT
--UserImage.value (''@HashCode[1]'', ''VARCHAR(10)'') as HashCode,
UserImage.value (''@Id[1]'', ''VARCHAR(10)'') as Id,
UserImage.value (''@UserId[1]'', ''VARCHAR(10)'') as UserId,
UserImage.value (''@OriginalName[1]'', ''VARCHAR(100)'') as OriginalName,
UserImage.value (''@StorageName[1]'', ''VARCHAR(100)'') as StorageName
FROM
@UserImages.nodes(''/UserImages/UserImage'') v(UserImage)
SELECT * FROM @UserImageTable
this is the solution