PDA

View Full Version : سوال: تغییر کد مربوط به فیلد عددی برای رشته



vapa_71
دوشنبه 25 دی 1391, 19:28 عصر
سلام دوستان
من این کد رو واسه پر کردن یک combobox دارم این کد با توجه یه combobox1 مقادیر رو درون combobox2 میریزه
حالا مشکل اینجاست که این کد در صورتی کار میکنه که درون combobox1 یک مقدار عددی باشه اما داده من رشته هست



private void comboBox4_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox4.SelectedIndex >= 0 && comboBox4.SelectedValue != null && !string.IsNullOrEmpty(comboBox4.SelectedValue.ToSt ring()))
{
SqlDataAdapter da = new SqlDataAdapter("Select testgroup From normalvalue Where animalcode=" + comboBox4.SelectedValue.ToString(), Con);
DataTable dt = new DataTable();
da.Fill(dt);

comboBox2.DisplayMember = "testgroup";
comboBox2.ValueMember = "testgroup";
comboBox2.DataSource = dt;
}
}

plus
دوشنبه 25 دی 1391, 19:32 عصر
ببینید اینطوری درست نمیشه؟

SqlDataAdapter da = new SqlDataAdapter(string.Format("Select testgroup From normalvalue Where animalcode=\"{0}\"", comboBox4.SelectedValue.ToString()), Con);


البته توجه کنید که فیلد animalcode در این حالت باید رشته ای باشه.نه عددی.

vapa_71
دوشنبه 25 دی 1391, 19:40 عصر
کد اینه

SqlDataAdapter da = new SqlDataAdapter("Select testname From normalvalue Where testgroup=" + comboBox2.SelectedValue.ToString(), Con);

MessageBox.Show(da.SelectCommand.CommandText);
DataTable dt = new DataTable();
da.Fill(dt);

comboBox3.DataSource = dt;
comboBox3.DisplayMember = "testname";
comboBox3.ValueMember = "testname";

vapa_71
دوشنبه 25 دی 1391, 19:42 عصر
تغییر دادم اما نشد اینم ارورش
http://s1.picofile.com/file/7620408923/rrrr.jpg

testgroup , testname داخل بانک به صورت رشته هستند مقادیر testgroup رو توی یک کامبوباکس ریختم حالا میخوام مقادیر testname رو طبق testgroup خودش بیارم

plus
دوشنبه 25 دی 1391, 19:56 عصر
خوب شما همون da.SelectCommand.CommandText رو که با message box نشونش میدین اینجا بگذارین ببینیم چیه.

vapa_71
دوشنبه 25 دی 1391, 19:59 عصر
کد پست 3 هستش

plus
دوشنبه 25 دی 1391, 20:03 عصر
مقدارش رو در ززمان اجرای دستور Fill میگم دوست عزیز نه کد برنامه رو.

vapa_71
دوشنبه 25 دی 1391, 20:07 عصر
http://s2.picofile.com/file/7620445913/ttttt.jpg

vapa_71
دوشنبه 25 دی 1391, 20:18 عصر
با تشکر از داداش مرتضی که مشکل رو حل کرد و دوست خوبم plus

کد به شکل زیر درسته

SqlDataAdapter da = new SqlDataAdapter("Select testname From normalvalue Where testgroup='" + comboBox2.SelectedValue.ToString() + "'", Con);

بازم از داداش مرتضی تشکر میکنم

hamedAdmin
سه شنبه 26 دی 1391, 09:36 صبح
سلام
در نهایت هنوز هم بطور کامل درستش نکردی دوست عزیز(البته دست داداش مرتضی تونم درد نکنه که نیمی از راه رو رفته برات) اما مشکل برای متون فارسی همچنان برجاست!کافیه کاراکترهایی مثل "ي" داخل همون combox باشه تا ببینی!(البته سیستمهای مختلف ممکنه فرق داشته باشه)

SqlDataAdapter da = new SqlDataAdapter("Select testname From normalvalue Where testgroup=N'" + comboBox2.SelectedValue.ToString() + "'", Con);

***به کاراکتر N توجه کن!
اینم یه نیگا بندازی بد نیس:
http://barnamenevis.org/showthread.php?378894-%D9%85%D8%B4%DA%A9%D9%84-%D8%AC%D8%B3%D8%AA-%D9%88-%D8%AC%D9%88-%DB%8C-%DA%A9%D9%84%D9%85%D8%A7%D8%AA%DB%8C-%D8%AF%D8%A7%D8%B1%D8%A7%DB%8C-%D8%AD%D8%B1%D9%81-quot-%DB%8C-quot-%D8%AF%D8%B1-%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87-%D8%AF%D8%A7%D8%AF%D9%87