我有段程序:
 
SqlConnection conn = new SqlConnection(strConn);
        string strSql = "insert into [文章]([编号],[标题],[类型],[路径],[内容],[作者],[所有者],[权限],[删除],[创建时间],[修改时间],[访问时间],[文章分类],[角色],[扩展]) ";
        strSql += " values('@编号','@标题','类型','@路径','@内容','@作者','@所有者','@权限','@删除','@创建时间','@修改时间','@访问时间','@文章分类','@角色','@扩展')";
        SqlCommand comm = new SqlCommand(strSql,conn);
        comm.Parameters.Add("@编号", SqlDbType.UniqueIdentifier).Value = new Guid(System.Guid.NewGuid().ToString());   
        comm.Parameters.Add("@标题", SqlDbType.NVarChar, 255).Value = title;
        comm.Parameters.Add("@类型", SqlDbType.NVarChar, 50).Value = Encode;
        comm.Parameters.Add("@路径", SqlDbType.NVarChar, 50).Value = "/";
        comm.Parameters.Add("@内容", SqlDbType.NVarChar).Value = content;
        comm.Parameters.Add("@作者", SqlDbType.NVarChar, 255).Value = author;  
        comm.Parameters.Add("@所有者", SqlDbType.NVarChar, 255).Value = "loweek";
        comm.Parameters.Add("@权限", SqlDbType.Int).Value = rights;
        comm.Parameters.Add("@删除", SqlDbType.Int).Value = 0;
        comm.Parameters.Add("@创建时间", SqlDbType.DateTime).Value = DateTime.Now;
        comm.Parameters.Add("@修改时间", SqlDbType.DateTime).Value = DateTime.Now;
        comm.Parameters.Add("@访问时间", SqlDbType.DateTime).Value = DateTime.Now;
        comm.Parameters.Add("@文章分类", SqlDbType.Int).Value = tvArticleList.SelectedNode.Value;
        comm.Parameters.Add("@角色", SqlDbType.NVarChar, 50).Value = "loweek";
        string strMeta = "";
        getMetas(divMeta,ref strMeta);
        comm.Parameters.AddWithValue("@扩展", strMeta);
        conn.Open();
        comm.ExecuteNonQuery();
        conn.Close();执行的时候提示我“将字符串转换为 uniqueidentifier 时失败。”谁帮我看看什么问题?吃饭先!

解决方案 »

  1.   

    new Guid(System.Guid.NewGuid().ToString());
    楼主想要什么类型阿?如果要Guid 直接System.Guid.NewGuid();就行了
    如果要String,System.Guid.NewGuid().ToString();就行了
      

  2.   

    comm.Parameters.Add("@编号", SqlDbType.Guid).Value = System.Guid.NewGuid();   这样试试!
      

  3.   

    comm.Parameters.Add("@编号", SqlDbType.UniqueIdentifier).Value = System.Guid.NewGuid().ToString();   
            comm.Parameters.Add("@标题", SqlDbType.NVarChar, 255).Value = title;
            comm.Parameters.Add("@类型", SqlDbType.NVarChar, 50).Value = Encode;
            comm.Parameters.Add("@路径", SqlDbType.NVarChar, 50).Value = "/";
            comm.Parameters.Add("@内容", SqlDbType.NVarChar).Value = content;
            comm.Parameters.Add("@作者", SqlDbType.NVarChar, 255).Value = author;   //整合登录验证后,需要修改所有者为编辑者
            comm.Parameters.Add("@所有者", SqlDbType.NVarChar, 255).Value = "loweek";
            comm.Parameters.Add("@权限", SqlDbType.Int).Value = rights;
            comm.Parameters.Add("@删除", SqlDbType.Int).Value = 0;
            comm.Parameters.Add("@创建时间", SqlDbType.DateTime).Value = DateTime.Now;
            comm.Parameters.Add("@修改时间", SqlDbType.DateTime).Value = DateTime.Now;
            comm.Parameters.Add("@访问时间", SqlDbType.DateTime).Value = DateTime.Now;
            comm.Parameters.Add("@文章分类", SqlDbType.Int).Value = tvArticleList.SelectedNode.Value;
            comm.Parameters.Add("@角色", SqlDbType.NVarChar, 50).Value = "loweek";
            string strMeta = "";
            getMetas(divMeta,ref strMeta);
            comm.Parameters.Add("@扩展", SqlDbType.NVarChar, 255).Value = strMeta;
            conn.Open();
            comm.ExecuteNonQuery();
            conn.Close();
    还是一样
      

  4.   


    EXEC sp_executesql N'insert into [文章]([编号],[标题],[类型],[路径],[内容],[作者],[所有者],[权限],[删除],[创建时间],[修改时间],[访问时间],[文章分类],[角色],[扩展])  values(''@编号'',''@标题'',''类型'',''@路径'',''@内容'',''@作者'',''@所有者'',''@权限'',''@删除'',''@创建时间'',''@修改时间'',''@访问时间'',''@文章分类'',''@角色'',''@扩展'')',
     N'@编号 uniqueidentifier,@标题 nvarchar(255),@类型 nvarchar(50),@路径 nvarchar(50),@内容 nvarchar(11),@作者 nvarchar(255),@所有者 nvarchar(255),@权限 int,@删除 int,@创建时间 datetime,@修改时间 datetime,@访问时间 datetime,@文章分类 int,@角色 nvarchar(50),@扩展 nvarchar(255)',
     @编号 = '51BB7A03-35A4-46E9-9D4A-558C9DF5427E', @标题 = N'adfadfaf', @类型 = N'HTML', @路径 = N'/', @内容 = N'adfadfdaf
    ', @作者 = N'adfadf', 
    @所有者 = N'loweek', @权限 = 0, @删除 = 0, @创建时间 = '2008-10-20 16:57:20:173', @修改时间 = '2008-10-20 16:57:20:173', 
    @访问时间 = '2008-10-20 16:57:20:173', @文章分类 = 1, @角色 = N'loweek', 
    @扩展 = N'<meta name="图片">adfafds</meta><meta name="关键字">adfadfasfd</meta>'这是sql中截获的代码!
      

  5.   

    其实要我说,UniqueIdentifier这个玩意你还不如让sqlserver自己生成。另外我很就不用了,uniqueidentifier 是放GUID的么?
      

  6.   

    感谢楼上提醒,让sql自己生成试试!
      

  7.   

    是在不好意思了,最后发现是 string strSql = "insert into [文章]([编号],[标题],[类型],[路径],[内容],[作者],[所有者],[权限],[删除],[创建时间],[修改时间],[访问时间],[文章分类],[角色],[扩展]) ";
            strSql += " values('@编号','@标题','类型','@路径','@内容','@作者','@所有者','@权限','@删除','@创建时间','@修改时间','@访问时间','@文章分类','@角色','@扩展')";类型前面少了个@符号!晕死,浪费我一个下午!