『关于向SQL SERVER 2005插入XML类型数据的问题』
存储过程为:
ALTER PROCEDURE [dbo].[InsertUser]
-- Add the parameters for the stored procedure here
(@UserID char(20), @Password char(10), @Name varchar(128),
@Address varchar(128),@Phone xml,@City varchar(50),@State char(2),@Zip char(5))
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
insert into Users (UserID,Password,nName,Address,Phone,City,State,Zip)
Values (@UserID,@Password,@Name,@Address,@Phone,@City,@State,@Zip)
END
--------------
string xml = CreatXml();
user.Phone = xml; //user是表类的对象
string CreatXml()
{
System.Text.StringBuilder output = new System.Text.StringBuilder();
XmlWriter writer = XmlWriter.Create(output);
writer.WriteStartDocument(false);
writer.WriteStartElement( "phone ");
writer.WriteElementString( "homePhone ", txtHomePhone.Text);
writer.WriteElementString( "cellPhone ", txtCellPhone.Text);
writer.WriteElementString( "officePhone ", txtOfficePhone.Text);
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Flush();
return output.ToString();
}
调试的时候生成的字符串都正确,就是提示存储过程InsertUser有错,
大家帮忙看看,谢谢拉 (Phone 是XML类型数据)
------解决方案--------------------SQL字符串正确那是格式方面!不考虑逻辑!你的只是一个字段是XML格式. 我不知道你要插入什么内容?直接插入字符串不行吗?
------解决方案--------------------你已经将xml转换成字符串了 指定数据插入一个字符字段就行
不要超过字符字段的最大值 建议数据库字段设为text类型