آموزش سی شارپ
اتصال combobox به دیتابیس در #c
گاهی مواقع نیاز است تا اطلاعات یک ستون از دیتابیس را در combobox نمایش دهید برای چنین منظوری باید combobox را به دیتابیس اتصال دهید.
نحوه اتصال combobox به دیتابیس در C#
برای اینکارباید یک کوئری به دیتابیس بزنید و سپس نتیجه را با استفاده از حلقه for در به آیتم های آن اضافه کنید.
مثال زیر را از دیتابیس در نظر بگیرید
می خواهیم ستون UserName را در combobox نمایش دهیم. برای اینکار ابتدا با استفاده از دستورات زیر ستون UserName را از جدول User می خوانیم
1 2 3 4 5 6 7 8 9 | SqlConnection conn = new SqlConnection("Data Source=localhost;Initial Catalog=db_user;Integrated Security=True"); string query = "SELECT UserName FROM [User]"; SqlCommand cmd = new SqlCommand(query,conn); SqlDataAdapter sda = new SqlDataAdapter(cmd); DataTable dt = new DataTable(); sda.Fill(dt); conn.Open(); cmd.ExecuteScalar(); conn.Close(); |
در دستور بالا ستون UserName را در DataTable ریختیم و اینبار باید اطلاعات را از دیتاتیبل به Combobox بریزیم. برای اینکار باید از حلقه for استفاده کنیم.
بعد از همین دستورات این حلقه for را قرار دهید.
1 2 3 4 | for (int i = 0; i < dt.Rows.Count; i++) { comboBox1.Items.Add(dt.Rows[i]["UserName"]); } |
نکته: این دستورات را می توانید در FormLoad صفحه قرار دهید همچنین می توانید در رویداد DrowpDown کومبوباکس قرار دهید.
آقای درویشی سلام یک سوالی دارم اگه جواب بدهید ممنون میشم. من در یک پنجره سی شارپ ۳ تا کمبوباکس و یک دیتاگریدویو دارم می خواهم در کمبو باکس ۱ دیتابیس های مختلف sql server نمایش داده بشه ، سپس با کلیک بر روی هر دیتابیس ، تیبل های مختلف اون در کمبوباکس ۲ نمایش داده بشه ، سپس با کلیک بر روی هر تیبل ، فیلدهای اون در کمبوباکس ۳ و دیتاگرید ویو نمایش داده بشه . ممنون میشم یک سورس کد برای من قرار دهید با تشکر فراوان
سلام. ممنون از آموزشتون. منظور از lt در حلقه forچیه؟
سلام
اون lt نیست مشکلی بود که حل شد. همان علامت کوچکتر بزرگتر است <> . ما بعد از واکشی اطلاعات از دیتابیس اونا رو در یک datatable ریختیم برای اینکه مقدارهمه یک فیلد مشخصی رو از datatable بتوانیم در combobox نمایش دهیم باید روی ستون فیلد مورد نظر به تعداد سطرها پیمایش انجام دهیم. و این i همان تعداد سطرهاست که می خواهیم از سطر صفر تا … پیمایش انجام دهیم.
سلام آقای درویشی
یه سوال داشتم. می خواستم ببینم چطور میتونم آیتم های کامبوباکس رو راست چین کنم. توی مثال شما، آتیم های شما از چپ نوشته شدن. میخوام از راست نوشته بشه. چون آیتم هام فارسیه. البته میخوام به صورت کدنویسی این کار رو انجام بدم نه اینکه از property تغییر بدم
خیلی ممنون از سایت خوبت
سلام این دستور رو در فرم لود قرار دهید:
combobox1.RightToLeft = RightToLeft.Yes;