PDA

View Full Version : این ارور برای چیه؟



KhanDaii
چهارشنبه 29 آذر 1391, 22:56 عصر
سلام
من توی sqlServer یه table دارم به اسم vahed و یه فیلد داره به نام shenase که کلید اصلی هست و dataType او هم nvarchar هست
وقتی که می خوام read کنم این ارور رو میگیره:

Conversion failed when converting the nvarchar value '5-1-1' to data type int.

انگاری می گه نمی تونه این فیلد رو به int تبدیل کنه.
من که نخواستم به int تبدیل شه؟

کدش هم اینه :

if (txt_tabaghe.Text != "" || txt_vahed.Text != "")
{

SqlConnection con = new SqlConnection();
con.ConnectionString = @"Data Source=.;Initial Catalog=ProjectManagementDB;Integrated Security=True";

SqlCommand com = new SqlCommand();
com.CommandType = CommandType.Text;
com.Connection = con;
com.CommandText = string.Format("SELECT vaziat FROM Vahed WHERE shenase = {0} ", lbl_shenase.Text);
con.Open();

SqlDataReader Reader;
Reader = com.ExecuteReader();
Reader.Read();

lbl_shenase.Text = lbl_idProje.Text + "-" + txt_tabaghe.Text + "-" + txt_vahed.Text;
cmb_vaziat.Text = Convert.ToString(Reader["vaziat"]);



con.Close();

}

خطی که ارور رو میده اینه :
Reader.Read();

mortezasar
چهارشنبه 29 آذر 1391, 23:38 عصر
دوست عزیز شما کارکتر رو نمی تونی به عدد تبدیل کنی و فک کنم نشه فیلد کارکتر رو کلید اصلی کرد امامیگم فک کنم
میشه بگی مبخوای چیکار کنی من یکم تو کدت گم شدم

ordebehesht
پنج شنبه 30 آذر 1391, 00:02 صبح
فیلد مورد نظر تو پایگاهدادت باید با نوع ورودیت برابر باشه البته فرمت همونطور که دوستمون گفتن ورودی شما نمیتونه تبدیل شه

Nima_kyan
پنج شنبه 30 آذر 1391, 00:05 صبح
سلام
فک میکنم مشکل شما در دستور select باشه.
به این صورت بنویسیدش.

com.CommandText = string.Format("SELECT vaziat FROM Vahed WHERE shenase = '{0}' ", lbl_shenase.Text);
چون فیلد shenase از نوع رشته است و شما پارامتر رو بدون سینگل کوتیشن ارسال کردین. '{0}'