ASP。NET我有一个string想插入数据库中,数据库对应列是一个XML类型的,怎么插入
<items><itemculture='en-us'value='"+item[0]+"'/><itemculture='zh-cn'value='"+item[1]+...
<items><item culture='en-us' value='" + item[0] + "' /><item culture='zh-cn' value='" + item[1] + "' /><item culture='zh-hk' value='" + item[2] + "' /></items>"这是String的内容
数据库的效果是:
有什么方法呢? 展开
数据库的效果是:
有什么方法呢? 展开
2个回答
展开全部
你需要使用System.Data.SqlTypes.SqlXml作为参数类型追加到参数列表
SqlCommand command =
new SqlCommand(commandText, connection);
// Read the saved XML document as a
// SqlXml-data typed variable.
SqlXml newXml =
new SqlXml(new XmlTextReader("MyTestStoreData.xml"));
// Supply the SqlXml value for the value of the parameter.
command.Parameters.AddWithValue("@xmlParameter", newXml);
SqlCommand command =
new SqlCommand(commandText, connection);
// Read the saved XML document as a
// SqlXml-data typed variable.
SqlXml newXml =
new SqlXml(new XmlTextReader("MyTestStoreData.xml"));
// Supply the SqlXml value for the value of the parameter.
command.Parameters.AddWithValue("@xmlParameter", newXml);
更多追问追答
追问
你好像没有弄懂我的意思
追答
你不是要将字符串作为XML写入到SQL SERVER的XML数据类型的列中么?
是你自己没有看懂吧,我再提供一段完整的代码给你,第二个参数就是你那个XML字符串:
static void InsertA(int aid, string contentXml)
{
//ConnString是连接字符串,需要额外定义
using (SqlConnection conn = new SqlConnection(ConnString))
{
conn.Open();
string sql = "INSERT INTO [A] ([ID],[Content])VALUES(@id,@content)";
using (SqlCommand comm = new SqlCommand(sql, conn))
{
using (XmlTextReader rdr = new XmlTextReader(contentXml, XmlNodeType.Document, null))
{
SqlXml sqlXml = new SqlXml(rdr);
SqlParameter parmID = new SqlParameter("@id", aid);
SqlParameter parmContent = new SqlParameter("@content", SqlDbType.Xml, sqlXml.Value.Length);
parmContent.Value = sqlXml;
comm.Parameters.Add(parmID);
comm.Parameters.Add(parmContent);
comm.ExecuteNonQuery();
}
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询