اتصال combobox به دیتابیس در #c + ویدیو
گاهی مواقع نیاز است تا اطلاعات یک ستون از دیتابیس را در combobox نمایش دهید برای چنین منظوری باید combobox را به دیتابیس اتصال دهید.
نحوه اتصال combobox به دیتابیس در C#
برای اینکارباید یک کوئری به دیتابیس بزنید و سپس نتیجه را با استفاده از حلقه for در به آیتم های آن اضافه کنید.
مثال زیر را از دیتابیس در نظر بگیرید
می خواهیم ستون UserName را در combobox نمایش دهیم. برای اینکار ابتدا با استفاده از دستورات زیر ستون UserName را از جدول User می خوانیم
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 را قرار دهید.
for (int i = 0; i < dt.Rows.Count; i++) { comboBox1.Items.Add(dt.Rows[i]["UserName"]); }
نکته: این دستورات را می توانید در FormLoad صفحه قرار دهید همچنین می توانید در رویداد DrowpDown کومبوباکس قرار دهید.
Comments (15)
با عرض سلام ، سوالی دارم ممنون میشم جواب دهید چطور می توانم با سی شارپ تمام instance های sql server 2019 را در یک کمبوباکس نمایش دهم البته از طریق رجیستری نباشه.
سلام خیلی ممنون اموزنده بود فقط اینک اگه بخواییم با دستور لینکیو این کا رو انجام بدیم به چه صورت انجام میشه ممنون
سلام در معماری 3 لایه چطوری میشه آیتم های یک ستون از جدول رو در کمبو باکس اضافه کرد؟؟؟
لطفا جوابم رو بدین خیلی به این جواب نیاز دارم ممنونم.
ممنون از مطلب خوبتون
سلام چطوری میشه اطلاعات دو ستون رو تو کومبوباس گذاشت مثلا نام و فامیل رو با هم تو یه کومبوباکس بزاریم
سلام
بله میشه لطفاً ابتدا تو کوئری خود ستون های مورد نظر رو بنویسید ستون های من name,family هستند:
string query = “SELECT name,family FROM [tbl_users]”;
سپس در حلقه for دستورات را بصورت زیر بنویسید:
comboBox1.Items.Add(dt.Rows[i][“name”]+” “+dt.Rows[i][“family”]);
سلام حالا اگر خواستیم اینارو برعکس کنیم یعنی از کمبو باکس بخونه و در جدول بزاره چی؟
اگر منظورتون مورد انتخاب شده کاربر باشه میتونید از خاصیت Text کمبوباکس استفاده کنید.
combobox.Text
سلام مهندس،من میخوام یک صفحه ثبت نام درست کنم که از جدول دومم (evidence) مقادیرش با combo box بذارم داخل فرم و همچنین میخوام در data grid view ،عدد نشون نده مقدار (name) اصلی را نشان بده؟ با تشکر
سلام میشه دقیقتر مشکلتون بگید منظورتون از عدد آی دی تو جدول هست؟
ضمنا از چت آنلاین استفاده کنید.
سلام آقای درویشی
یه سوال داشتم. می خواستم ببینم چطور میتونم آیتم های کامبوباکس رو راست چین کنم. توی مثال شما، آتیم های شما از چپ نوشته شدن. میخوام از راست نوشته بشه. چون آیتم هام فارسیه. البته میخوام به صورت کدنویسی این کار رو انجام بدم نه اینکه از property تغییر بدم
خیلی ممنون از سایت خوبت
سلام این دستور رو در فرم لود قرار دهید:
combobox1.RightToLeft = RightToLeft.Yes;
سلام. ممنون از آموزشتون. منظور از lt در حلقه forچیه؟
سلام
اون lt نیست مشکلی بود که حل شد. همان علامت کوچکتر بزرگتر است <> . ما بعد از واکشی اطلاعات از دیتابیس اونا رو در یک datatable ریختیم برای اینکه مقدارهمه یک فیلد مشخصی رو از datatable بتوانیم در combobox نمایش دهیم باید روی ستون فیلد مورد نظر به تعداد سطرها پیمایش انجام دهیم. و این i همان تعداد سطرهاست که می خواهیم از سطر صفر تا … پیمایش انجام دهیم.
آقای درویشی سلام یک سوالی دارم اگه جواب بدهید ممنون میشم. من در یک پنجره سی شارپ ۳ تا کمبوباکس و یک دیتاگریدویو دارم می خواهم در کمبو باکس ۱ دیتابیس های مختلف sql server نمایش داده بشه ، سپس با کلیک بر روی هر دیتابیس ، تیبل های مختلف اون در کمبوباکس ۲ نمایش داده بشه ، سپس با کلیک بر روی هر تیبل ، فیلدهای اون در کمبوباکس ۳ و دیتاگرید ویو نمایش داده بشه . ممنون میشم یک سورس کد برای من قرار دهید با تشکر فراوان