【问题标题】:invalidCastException was unhandled by user code用户代码未处理 invalidCastException
【发布时间】:2012-03-09 18:47:09
【问题描述】:

当我试图编译我的 asp.net 网站项目时,我得到了这个错误。

invalidCastException 未被用户代码处理

protected void Button1_Click(object sender, EventArgs e)
{

    SqlCommand cmd = new SqlCommand("Sp_Kullanici_Ekle ", con);
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Parameters.Add("@ad", SqlDbType.NChar, 50).Value = TextBox_ad;
    cmd.Parameters.Add("@soyad", SqlDbType.NChar, 50).Value = TextBox_soyad;
    cmd.Parameters.Add("@tel", SqlDbType.NChar, 50).Value = TextBox_no;
    cmd.Parameters.Add("@adres", SqlDbType.NChar, 50).Value = TextBox_adres;
    cmd.Parameters.Add("@email", SqlDbType.NChar, 50).Value = TextBox_mail;
    cmd.Parameters.Add("@sifre", SqlDbType.NChar, 50).Value = TextBox_sifre;
    cmd.Parameters.Add("@kredikart", SqlDbType.NChar, 50).Value = TextBox_kredikart;

    con.Open();
    cmd.ExecuteNonQuery(); // this step gives error
    con.Close();

}

是sql端

  ALTER PROCEDURE [dbo].[Sp_Kullanici_Ekle] 
  (
   @ad nvarchar(50),
   @soyad nvarchar(50),
   @tel nvarchar(50),
   @adres nvarchar(50),
   @email nchar(50),
   @sifre nvarchar(50),
   @kredikart nvarchar(50)
 )
AS
BEGIN
insert into kullanici(kullanici_ad,kullanici_soyad,kullanici_tel,kullanici_adres,
kullanici_email,kullanici_sifre,kullanici_kredikart)
values(@ad,@soyad,@tel,@adres,@email,@sifre,@kredikart)

END

【问题讨论】:

    标签: c# asp.net sql-server


    【解决方案1】:

    只是一个想法,但我认为问题在于您在设置参数值时没有使用 TextBox_ad.Text。

    本质上,您将 Web 控件作为参数而不是 Web 控件的文本传入。它可能需要一个字符串,当它将 Web 控件转换为字符串时,它会给您该异常。

    【讨论】:

    • 我做到了。然后我得到了这个。 INSERT 语句与 FOREIGN KEY 约束“FK_kullanici_kayit”冲突。冲突发生在数据库“ticket”、表“dbo.kayit”、列“kayit_id”中。声明已终止。
    • 很好,那么您已经解决了您提出的问题。现在你有一个新问题。
    • 同意。这解决了当时的问题。我怀疑如果你现在查看你的表,你会发现你已经有一行具有相同的 ID。
    【解决方案2】:

    你必须得到文本框的文本。您不能将值设置为文本框对象本身。

    【讨论】:

      【解决方案3】:
      1. 您需要提供更多详细信息,例如您在哪一行看到错误。

      2. invalidCastException was unhandled by user code 听起来更像是运行时错误。请澄清这一点。

      3. 如果它实际上是一个运行时错误,那么您只需进行类型检查,如下所示:

        if (var.GetType() == type([expected type like string]))
        

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-04-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-28
        • 2014-10-18
        • 1970-01-01
        相关资源
        最近更新 更多