Исключение: не удалось преобразовать значение параметра из Guid в строку - PullRequest
0 голосов
/ 22 января 2010

У меня проблема при создании веб-приложения с использованием LinqTemplate. Это объяснение, шаг за шагом ...

  1. Я создал базу данных с именем таблицы UserTest с одним именем столбца UserId с типом уникального идентификатора
  2. Я создал проект classLiberary, в котором я использовал LinqTemplate of subsonic для генерации кода 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. Я создал веб-проект в том же решении и создал страницу 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.UserTest.aspx.cs Здесь база данных - это строка имени подключения, код события 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 голосов
/ 22 января 2010

Я бы проверил вашу библиотеку классов, потому что она выглядит как сбой, потому что свойство "UserId" в классе "Datadase.TestUser" является строкой, а не Guid.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...