当我尝试编译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
最佳答案
只是一个想法,但我认为问题在于设置参数值时未使用TextBox_ad.Text。
本质上,您将Web控件作为参数而不是Web控件的文本传递。它可能期望一个字符串,并且在将Web控件强制转换为字符串时会给您该异常。
关于c# - 用户代码未处理invalidCastException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1936347/