PDA

View Full Version : ذخیره کردن مقدار یک combobox



hi1001
پنج شنبه 24 تیر 1389, 09:44 صبح
با سلام خدمت دوستان
من یک combobox یا همون لیست باز شو درست کرده ام
داخل لیست name,familyگذاشته ام
میخوام وقتی کاربر nameرا انتخاب کرد به جای اینکه name داخل دیتابیس ذخیره بشه
یک مقدار عددی مثل 1 دخیره بشه

baharvand87
پنج شنبه 24 تیر 1389, 10:55 صبح
سلام از ایندکس خودش استفاده کن
comboBox1.SelectedIndex

hi1001
پنج شنبه 24 تیر 1389, 11:13 صبح
دوستان من مبتدی هستم
اگه میشه بگین کجا برنامه وارد کنم
اینم سورس من هستش



connection.Open();

string sql = "insert into it(statuse_eshterak) Values('" + comboBox1.Text + "')";


MySqlCommand cmd = new MySqlCommand(sql, connection);
//cmd1.ExecuteNonQuery();

cmd.ExecuteNonQuery();

connection.Close();
M

baharvand87
پنج شنبه 24 تیر 1389, 17:41 عصر
string sql = "insert into it(statuse_eshterak) Values('" + comboBox1.Text + "')";
به جای این comboBox1.Text بنویس combobox1.selectedIndex.tostring() استفاده کن اگه اولی انتخاب شده باشه 0 میشه اگه دومی 1 میشه

hi1001
پنج شنبه 24 تیر 1389, 18:18 عصر
دوست عزیز از راهنماییتون ممنون ولی من تغییراتی که گفتید رو انجام دادم

ertebat(statuse_eshterak) Values('" + comboBox1.SelectedItem.ToString() +"')";

اطلاعات رو ذخیره میکنم بدون خطا
ولی وقتی نگاه فیلد ها میکنم فقط 0 ذخیره شده
اگه میشه بیشتر راهنمایی کنید

baharvand87
پنج شنبه 24 تیر 1389, 23:36 عصر
سلام


میخوام وقتی کاربر nameرا انتخاب کرد به جای اینکه name داخل دیتابیس ذخیره بشه
یک مقدار عددی مثل 1 دخیره بشه

این طوری به جای اولین آیتم تو کامبو باکست 0 و بجای دومی 1 ذخیره میشه به همین ترتیب اگه اینو نمیخایی بیشتر توضیح بده

ahrimaneahurai
پنج شنبه 24 تیر 1389, 23:45 عصر
اگه کد آقای x مثلا 2 باشه با selectedvalue توی دیتابیس 2 ذخیره میشه حالا می خواد نفر 10هم تو کمبو باکست باشه یا 20م. selectedvalue موقع تعییر دیتاسورس برای کمبوباکس مقدار دهی میشه
اما اگه اقایx نفر اول کمبوباکست باشه با selectedindex صفر تو دیتابیس ذخیره میشه و اگه نفر دهم باشه تو کمبوباکست عدد 10 ذخیره میشه.
حالا شما کدوم رو میخوای؟

hi1001
شنبه 26 تیر 1389, 00:16 صبح
سلام دوستان
من هنوز به نتیجه نرسیده ام
لطفا بیشتر راهنمایی کنید

در html این سورس برای ارسال اطلاعات به دیتابیس میباشه

<select name="4" id="4">

<option value="2">name</option>
<option value="4">family</option>

</select

اگه در این لیست, family را انتخاب کنم داخل دیتابیس مقدارش4
دخیره میشه
حالا در سی شارپ من یک combobox دارم
چگونه با انتخاب familyمقدار4 در دیتابیس دخیره بشه

hi1001
شنبه 26 تیر 1389, 10:47 صبح
دوستان لطفا کمک کنید

کسی نمیخواد راهنمایی کنه

ahrimaneahurai
شنبه 26 تیر 1389, 11:24 صبح
کدی که باهاش کمبو رو پر می کنی بذار

hi1001
شنبه 26 تیر 1389, 11:52 صبح
دوست عزیز
من کد html رو مثال زدم

به طور کلی به combobox
name,family اضافه کرده ام
حالا چطور با انتخاب name داخل combobox میشه عدد 56 داخل دیتابیس ذخیره بشه

من میخوام با انتخاب nameیک عدد وارد دیتابیس کنم

لطفا کمک کنید:عصبانی++::گریه:

amirh_karimifar
شنبه 26 تیر 1389, 12:05 عصر
سلام دوست عزیز ...
روش عملکرد comboBox مانند یک آرایه است . یعنی تمام Item های ورودی شما در یک آرایه به نام item ذخیره می شه . حالا شما می تونی از اندیس ای آرایه برای مقصودت استفاده کنی . من برات یه برنامه ضمیمه می کنم که این مطلب و به خوبی نشون میده
با انتخاب هر Item از Combo box اندیس item در label نشون داده میشه . خودتون میتونید
item های بیشتری به box اضافه کنید تا فرقشو ببینید .

hi1001
شنبه 26 تیر 1389, 12:10 عصر
دوست عزیز اینم خودم میدونستم
من میخوام از 0 شروع نشه
کد شما با انتخاب اولین ایتم 0 نمایش میدهد
با انتخاب name عدد 56 وارد دیتابس بشه

amirh_karimifar
شنبه 26 تیر 1389, 12:13 عصر
اگر این روش مد نظر شما نبود می تونی از این روش استفاده کنی



int [] number = new int[combobox1.Items.Length] ;

for (int i = 0 ; i<Items.Length ; i++);
number [i] = 56 +i ;

بعد از این تو دستورات insert پایگاه داده به جای combobox.selectedItem از number[combobox1.selectedIndex استفاده کنید .

amirh_karimifar
شنبه 26 تیر 1389, 12:21 عصر
اگه هیچ کدوم از روش های بالا جواب نداد . اینو امتحان کن .

(combobox1.selectedIndex+56).Tostring();

hi1001
شنبه 26 تیر 1389, 12:22 عصر
دوست عزیز
من استفاده کردم ولی ارور میده برنامه
من مبتدی هستم اگه میشه یک سورس با دیتابیس اکسس بهم بده
خیلی خیلی ممنون میشم

amirh_karimifar
شنبه 26 تیر 1389, 12:29 عصر
باشه حتما
ولی میشه erroreto بگی ببنینم چی میگه ؟

hi1001
شنبه 26 تیر 1389, 12:33 عصر
private void button1_Click(object sender, EventArgs e)
{
int[] number = new int[comboBox1.Items];

for (int i = 0; i < Items.Length; i++) ;
number[i] = 56 + i;

string connectionstring = "Data Source=localhost;Database=users;User ID=root;Password=;;charset=utf8";
MySqlConnection connection = new MySqlConnection(connectionstring);
connection.Open();

string sql = "insert into eshterakasreertebat(statuse_eshterak) Values('" + comboBox1.SelectedIndex +"')";



connection);

MySqlCommand cmd = new MySqlCommand(sql, connection);


cmd.ExecuteNonQuery();

connection.Close();
MessageBox.Show("اطلاعات ثبت شد");


جاهایی که قرمز کردم ارور داده

amirh_karimifar
شنبه 26 تیر 1389, 12:40 عصر
int[] number = new int[comboBox1.Items.Count];

for (int i = 0; i < comboBox1.Items.Count ; i++) ;
number[i] = 56 + i;

این رو جایگزین قبلیه کن صد در صد جواب میده .

amirh_karimifar
شنبه 26 تیر 1389, 12:42 عصر
اگه برای i خطا داد . یه اسم دیگه به جای همه i ها بذار . مثلا j

hadi__ab
یک شنبه 10 اردیبهشت 1391, 00:53 صبح
سلام
من فکر ميکنم که اين دوستمون منظورشون اين هست که اگر در يک تيبل در ديتابيست مثلا دو ستون داريم که يکي نام و ديگري کدي به عنوان شماره نام هست اگر در کمبوباکس نام 5 رو انتخاب کرد مقدار 5 در جدول ديگري ذخيره بشه نه 4
تو کدهاي که دوستان نوشتن مشکلي که هست اينکه که اگر کسي بياد و کمبوباکس رو براساس نام سورت کنه اون وقت ديگه نميشه از selectindex استفاده کرد چرا که با انتخاب يک نام کد ديگه در ديتابيس ذخيره ميشه که اين درست نيست.
اين مشکل رو هم من دارم.

hadi__ab
یک شنبه 10 اردیبهشت 1391, 18:02 عصر
اگر کمبو از دیتابیس پر میشه و نام رو displaymember و کد رو valuemember پس به جای selectedindex از selectedvalue استفاده کنید تا کد رو بدست بیارید.


سلام
تونستم پيداش کنم
از اين کد براي بدست آوردن value استفاده کردم



Object selectedItem = combobox1.SelectedValue;

int X= Convert.ToInt32(selectedItem);