PDA

View Full Version : سوال: نحوه اتصال combobox به پایگاه داده



eslamzadeh
شنبه 09 خرداد 1394, 16:10 عصر
سلام من این کد ها رو نوشتم ولی ارور میگیره و به مشکل خوردم لطفا اگه میشه من رو راهنمایی کنید.



DataSet.ModelMasnouTalaDataTable objModelMasnouTalaDataTable =
new DataSet.ModelMasnouTalaDataTable();
DataSetTableAdapters.ModelMasnouTalaTableAdapter objModelMasnouTalaTableAdapter =
new DataSetTableAdapters.ModelMasnouTalaTableAdapter() ;

objModelMasnouTalaTableAdapter.Fill
(objModelMasnouTalaDataTable);


DataSet.ModelMasnouTalaRow objModelMasnouTalaRow =
objModelMasnouTalaDataTable[0];

comboBox1.DataSource = objModelMasnouTalaRow;
comboBox1.DisplayMember = objModelMasnouTalaRow.Name;
comboBox1.ValueMember =Convert.ToString(objModelMasnouTalaRow.ID);

god of war
شنبه 09 خرداد 1394, 17:01 عصر
سلامDisplayMember و valueMember رو به شکل string نام ستونهای مورد نظرتون قرار بدید ببینید درست میشه ...

;" comboBox1.DisplayMember = " name

eslamzadeh
شنبه 09 خرداد 1394, 20:48 عصر
سلامDisplayMember و valueMember رو به شکل string نام ستونهای مورد نظرتون قرار بدید ببینید درست میشه ...

;" comboBox1.DisplayMember = " name


متاسفانه خیر درست نشد و این ارور رو میده

131814

god of war
یک شنبه 10 خرداد 1394, 00:07 صبح
valueMember هم به همین شکل تغییر دادی ؟

eslamzadeh
یک شنبه 10 خرداد 1394, 01:50 صبح
valueMember هم به همین شکل تغییر دادی ؟

بله دقبقا به شکلی که گفتید تغییر دادم بعد شکل های مختلف رو امتحان کردم ولی نتیجه ای نگرفتم.

god of war
یک شنبه 10 خرداد 1394, 10:33 صبح
اسم ستونها مطمئنی درسته ؟
از datatatable هم استفاده کردی ؟
اگه درست نشد یه شات از کد جدیدت ، تابع در یافت اطلاعات از بانک و یه شات هم از جدول بانکت بزار

eslamzadeh
یک شنبه 10 خرداد 1394, 15:29 عصر
اینم عکس هایی که می خواستید.
دیتا تیبل که اولین کدی هست که نوشتم!!!!!
عکس زیر مال کد هاست!!!!

131832

عکس زیر هم دیتابیس تو فایل دیتا ست
131833

Mahmoud.Afrad
یک شنبه 10 خرداد 1394, 19:27 عصر
باید دیتاتیبل رو به عنوان دیتاسورس قرار بدی نه یک سطر رو.

objModelMasnouTalaTableAdapter.Fill
(objModelMasnouTalaDataTable);

comboBox1.DataSource = objModelMasnouTalaDataTable;

aidivandi
یک شنبه 10 خرداد 1394, 20:13 عصر
از این دستورات استفاده کن

SqlDataReader Mydata=null;
MyStr = "SELECT myfield " +

"FROM MyTable "+

"ORDER BY MyField ";

SqlCmd = new SqlCommand(MyStr, MyCnn);

MyCnn.Close();

MyCnn.Open();

Mydata=SqlCmd.ExecuteReader();

comboBox1.Items.Clear();
while (Mydata.Read())
{

comboBox1.Items.AddRange(new object[] { Mydata[0].ToString() });
}
Mydata.Close();

منظور از myfield نام فیلد مورد نظر از جدول اطلاعاتی که می خوای اطلاعاتش رو توی کمبو نشون بده و mycnn همون conectionstring و MyTable هم نام جدول موردنظرته

eslamzadeh
دوشنبه 11 خرداد 1394, 01:54 صبح
باید دیتاتیبل رو به عنوان دیتاسورس قرار بدی نه یک سطر رو.

objModelMasnouTalaTableAdapter.Fill
(objModelMasnouTalaDataTable);

comboBox1.DataSource = objModelMasnouTalaDataTable;


همین کار رو هم کردم ولی همون ارور رو میده!!!!!!!


از این دستورات استفاده کن

SqlDataReader Mydata=null;
MyStr = "SELECT myfield " +

"FROM MyTable "+

"ORDER BY MyField ";

SqlCmd = new SqlCommand(MyStr, MyCnn);

MyCnn.Close();

MyCnn.Open();

Mydata=SqlCmd.ExecuteReader();

comboBox1.Items.Clear();
while (Mydata.Read())
{

comboBox1.Items.AddRange(new object[] { Mydata[0].ToString() });
}
Mydata.Close();

منظور از myfield نام فیلد مورد نظر از جدول اطلاعاتی که می خوای اطلاعاتش رو توی کمبو نشون بده و mycnn همون conectionstring و MyTable هم نام جدول موردنظرته

این نوع دستورات باگ SQLI دارند مناسب نیستند ولی بازم بخاطر کمکتون ممنونم...

Mahmoud.Afrad
دوشنبه 11 خرداد 1394, 14:14 عصر
به valuemember و displaymember بایستی نام پراپرتی ها رو پاس بدی:

comboBox1.DisplayMember = "Name";
comboBox1.ValueMember = "ID";

eslamzadeh
سه شنبه 12 خرداد 1394, 16:17 عصر
به valuemember و displaymember بایستی نام پراپرتی ها رو پاس بدی:

comboBox1.DisplayMember = "Name";
comboBox1.ValueMember = "ID";


این مدل هم امتحان کردم ولی باز همون ارور رو گرفتم!!! :متفکر: :اشتباه:

khokhan
سه شنبه 12 خرداد 1394, 17:46 عصر
این مدل هم امتحان کردم ولی باز همون ارور رو گرفتم!!! :متفکر: :اشتباه:

اولا اینکه یه اشکال عمده در کدهای شما وجود داره و اون اینکه شما عبارت DataSet رو که در برخی خطوط بکار بردین یک عبارت کلی در برنامه نویسی به شمار می ره و به صورت اختصاصی به دیتاستی که در پروژه تون اضافه کردن اشاره نداره یعنی با بکار بردن عبارت DataSetیه نمونه دیتاست جدید علاوه بر اونی که در پروژه تون اضافه کردین ساخته می شه
پیشنهاد می کنم یک نام اختصاصی به دیتاست پروژتون بدین تا تلاقی بوجود نیاد

دوما نیازی به objModelMasnouTalaRow نداشتی فقط کافیه بودتا دیتاتیبل داخل دیتاست رو که نمونه سازی کردی به عنوان دیتاسورس کمبوباکس قرار می دادی و فیلد نام رو به عنوان DisplayMember ست می کردی


DataSet1.ModelMasnouTalaDataTable objModelMasnouTalaDataTable =
new DataSet1.ModelMasnouTalaDataTable();
DataSet1TableAdapters.ModelMasnouTalaTableAdapter objModelMasnouTalaTableAdapter =
new DataSet1TableAdapters.ModelMasnouTalaTableAdapter( );

objModelMasnouTalaTableAdapter.Fill
(objModelMasnouTalaDataTable);


//DataSet1.ModelMasnouTalaRow objModelMasnouTalaRow =
// objModelMasnouTalaDataTable[0];

comboBox1.DataSource = objModelMasnouTalaDataTable;
comboBox1.DisplayMember = "Name";
comboBox1.ValueMember = "ID";

prans_tork
سه شنبه 12 خرداد 1394, 23:11 عصر
سلام
اولا دیتا تیبل رو به کمبو باکس متصل کنید و یادتون باشه که دیتا تیبل های داخل یک دیتاسورس همه اسم دارن و همنام با تیبلی هستن که ازش کوئری گرفتین و از نام دیتاتیبل برای دسترسی به اون داخل دیتاسورس استفاده کنید بهتره و مطمعن تره
دوما DisplayMember و ValueMember رو ست کنید که کردید.
سوما خطایی که دارید به خاطر خالی بودن Datasource هست. کوئری خودتونو چک کنید

eslamzadeh
چهارشنبه 13 خرداد 1394, 16:35 عصر
اولا اینکه یه اشکال عمده در کدهای شما وجود داره و اون اینکه شما عبارت DataSet رو که در برخی خطوط بکار بردین یک عبارت کلی در برنامه نویسی به شمار می ره و به صورت اختصاصی به دیتاستی که در پروژه تون اضافه کردن اشاره نداره یعنی با بکار بردن عبارت DataSetیه نمونه دیتاست جدید علاوه بر اونی که در پروژه تون اضافه کردین ساخته می شه
پیشنهاد می کنم یک نام اختصاصی به دیتاست پروژتون بدین تا تلاقی بوجود نیاد

دوما نیازی به objModelMasnouTalaRow نداشتی فقط کافیه بودتا دیتاتیبل داخل دیتاست رو که نمونه سازی کردی به عنوان دیتاسورس کمبوباکس قرار می دادی و فیلد نام رو به عنوان DisplayMember ست می کردی


DataSet1.ModelMasnouTalaDataTable objModelMasnouTalaDataTable =
new DataSet1.ModelMasnouTalaDataTable();
DataSet1TableAdapters.ModelMasnouTalaTableAdapter objModelMasnouTalaTableAdapter =
new DataSet1TableAdapters.ModelMasnouTalaTableAdapter( );

objModelMasnouTalaTableAdapter.Fill
(objModelMasnouTalaDataTable);


//DataSet1.ModelMasnouTalaRow objModelMasnouTalaRow =
// objModelMasnouTalaDataTable[0];

comboBox1.DataSource = objModelMasnouTalaDataTable;
comboBox1.DisplayMember = "Name";
comboBox1.ValueMember = "ID";

بسیار سپاسگذارم یه سوال من تا الان دیتاست مینوشتم و در هنگام ثبت مشکلی نبود و کالا ثبت میشد چرا در اینجا به این مشکل برخورد کردم؟