2009-12-20 2 views
1

, когда я попытался скомпилировать мой проект веб-сайта asp.net, я получил эту ошибку.invalidCastException не был обработан кодом пользователя

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 

ответ

4

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

8

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

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

+0

я сделал это. то я получил это. Оператор INSERT противоречил ограничениям FOREIGN KEY «FK_kullanici_kayit». Конфликт произошел в базе данных «билет», таблица «dbo.kayit», столбец «kayit_id». Заявление было прекращено. – ozkank

+5

Хорошо, тогда вы решили вопрос, который вы задали. Теперь у вас есть новая проблема. –

+0

Согласен. Тогда это решило проблему. Я подозреваю, что если вы посмотрите в свою таблицу сейчас, вы увидите, что у вас уже есть строка с тем же идентификатором. –

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

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

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

    if (var.GetType() == type([expected type like string])) 
    
Смежные вопросы