例外:无法将参数值从Guid转换为String

时间:2010-01-22 04:22:11

标签: asp.net sql-server

我在使用LinqTemplate创建Web应用程序时遇到问题,这是步骤明智的解释....

  1. 我创建了一个表名为UserTest的数据库,其中一个列名为UserId,其中包含uniqidentifier数据类型
  2. 我创建了一个classLiberary项目,其中我使用了亚力学的LinqTemplate进行DAL的代码生成,并为UserTest创建了一个部分类

    public partial class TestUser:Classes
    {
        public int Insert(TestUser user)
        {
          NFSLicensingSystemDB db = new NFSLicensingSystemDB();
          return  db.Insert.Into<TestUser>
               ( 
               x => x.UserId
    
               )
            .Values(
              user.UserId
            ).Execute();
        }
    
    }
    
  3. 我在同一个解决方案中创建了一个Web项目,并使用一个按钮创建了一个UserTest.aspx页面 该页面的UserTest.aspx代码: -

     <html xmlns="http://www.w3.org/1999/xhtml" >
        <head runat="server">
            <title>Untitled Page</title>
        </head>
        <body>
            <form id="form1" runat="server">
            <div>
            <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
            </div>
            </form>
        </body>
     </html>
    
  4. 4.UserTest.aspx.cs 这里Database是OnButton Click事件的连接字符串名称代码

        protected void Button1_Click(object sender, EventArgs e)
        {
            Datadase.TestUser test =new Datadase.TestUser();
            test.UserId = Guid.NewGuid();
            test.Insert(test);
    
        }
    

    现在,当我构建项目时,它成功构建,当我运行它显示的项目时 带有按钮的UserTest.aspx页面但是当我点击按钮时它必须将新的guid值插入到表中但是 它会引发异常

    [InvalidCastException: Object must implement IConvertible.]
       System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider) +2560525
       System.Data.SqlClient.SqlParameter.CoerceValue(Object value, MetaType destinationType) +414
    
    [InvalidCastException: Failed to convert parameter value from a Guid to a String.]
      TestPages.UserEdit.btnCreateNewAccount_Click(Object sender, EventArgs e) in D:\TestPages\UserEdit.aspx.cs:61
       System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105
    

1 个答案:

答案 0 :(得分:0)

我会检查你的类库,因为看起来它失败了,因为类“Datadase.TestUser”中的属性“UserId”是一个字符串,而不是Guid。