invalidCastException не было обработано кодом пользователя - PullRequest
1 голос
/ 20 декабря 2009

, когда я пытался скомпилировать свой проект сайта 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

Ответы [ 3 ]

8 голосов
/ 20 декабря 2009

Просто идея, но я думаю, что проблема в том, что вы не используете TextBox_ad.Text при установке значений параметров.

По сути, вы передаете веб-элемент управления в качестве параметра, а не текст веб-элемента управления. Вероятно, он ожидает строку, и когда он переводит веб-элемент управления в строку, он дает вам это исключение.

4 голосов
/ 20 декабря 2009

Вы должны получить текст текстового поля. Вы не можете установить значение для самого объекта текстового поля.

1 голос
/ 20 декабря 2009
  1. Вам необходимо указать более подробную информацию, например, в какой строке вы видите ошибку.

  2. invalidCastException was unhandled by user code больше похоже на ошибку во время выполнения. Пожалуйста, уточните это.

  3. Если это на самом деле ошибка времени выполнения, вам просто нужно поставить проверку типа, которая будет выглядеть примерно так:

    if (var.GetType() == type([expected type like string]))
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...