日期:2014-05-18  浏览次数:20439 次

『关于向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类型