PDA

View Full Version : سوال: ریختن محتویات یک فیلد به خصوص از جدول درون کمبو باکس



firoozi90
چهارشنبه 18 مرداد 1391, 23:14 عصر
سلام بچه ها
بهترین روش برای اینکه یک فیلد از جدول رو درون کمبو باکس بریزیم چیه؟
میشه راهنمایی کنید

salehvasaleh
پنج شنبه 19 مرداد 1391, 01:02 صبح
سلام بچه ها
بهترین روش برای اینکه یک فیلد از جدول رو درون کمبو باکس بریزیم چیه؟
میشه راهنمایی کنید
من از این روش استفاده کردم جواب داد:


SqlDataAdapter da = new SqlDataAdapter("", con);
DataSet ds = new DataSet();
// SqlCommand com = new SqlCommand("select * from Table_1", con);
//Table_1 اسم جدول است.
da.SelectCommand.CommandText = "select * from Table_1 ";
da.Fill(ds, "Table_1");
// name اسم ستون است
comboBox1.DataSource = ds;
comboBox1.DisplayMember = "Table_1.name";

victoria
پنج شنبه 26 مرداد 1391, 10:45 صبح
بهترین روش استفاده از LINQ هستش.خواستی بگو کدشو برات بذارم.

firoozi90
پنج شنبه 26 مرداد 1391, 11:23 صبح
بهترین روش استفاده از LINQ هستش.خواستی بگو کدشو برات بذارم.
ممنون میشم بزاری.البته من همه ی کدام با ADO نوشتم.اما چون لینکیو هم کار می کنم بزاری استفاده می کنیم

firoozi90
جمعه 27 مرداد 1391, 18:17 عصر
بچه ها این تکیه کد رو چطور میشه با یه تابع نوشت؟

string cnString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\SELLPC.mdf;Integrated Security=True;User Instance=True";
SqlConnection cn = new SqlConnection(cnString);
cn.Open();
SqlDataAdapter da = new SqlDataAdapter("",cn );
DataSet ds = new DataSet();
// SqlCommand com = new SqlCommand("select * from Table_1", con);
//Table_1 اسم جدول است.
da.SelectCommand.CommandText = "select * from TBLMB ";
da.Fill(ds, "TBLMB");
// name اسم ستون است
comboBoxmdlmb. DataSource = ds;
comboBoxmdlmb.DisplayMember = "TBLMB.MDLMB";

r. salehi
سه شنبه 31 مرداد 1391, 21:03 عصر
دوست عزیز استفاده از Linq منافاتی با ADO نداره و در واقع روشهایی مثل Linq to SQL و Entity Framework روشهایی تکمیلی در راستای ساده سازی استفاده از Ado.Net هستند. اما خود روشهای پرسوجو با Linq روی تقریبا همه اشیا کار می کنند و بسیار عالی هم کار می کنند.
1- روشی برای پر کردن ComboBox:
ابتدا در Soulotion explorer یک آیتم جدید از نوع Dataset با نامی مثل Dataset1 بسازید. بعد بازش کنید و از قسمت Server Explorer جداولی را مایلید از اونها استفاده کنید را بگیرد و در داخل Dataset1 بیاندازید. drag and drop.
فرض میکنیم جدول tbl1 که شامل سه ستون col1, col2, col3 هست رو انتخاب کردید.
حالا یک نمونه از datatable و dataadapter از روی دیتاست تعریف می کنید به روش زیر:


Dim da1 As New Dataset1TableAdapters.tbl1TableAdapter
Dim dt1 As New Dataset1.tbl1DataTable

حالا با استفاده از دیتاآداپتر دیتاتیبل رو پر می کنیم



da1.fill(dt1)


خوب ما در جدول سه تا ستون دارم که فقط میخواهیم یکی از اونها را در combobox مورد استفاده قرار بدیم


With Combobox1
.DataSource = dt1
.DisplayMember = "Col1"
End With



حالا کامبوباکس کار میکنه اما اگر بخواهید داده های درون کامبوباکس با فیلتر خاصی از جداول واکشی بشه و در کامبوباکس نمایش داده بشه اینجا راحتترین راه استفاده از LINQ خواهد بود مثلا فرض کنید داده های ستون col1 دارای داده تکراری باشه و شما بخواهید فقط داده های غیر تکراری در کامبوباکس نمایش داده بشه

dim mycombodata1=(from k in dt1 select k.col1, k.col2 Distinct).tolist

البته این سطر را باید بعد از سطر پرکننده دیتاتیبل قرار بدین و بعدش هم دیتا سورس کامبوباکس را با mycombodata جایگزین کنید

r. salehi
سه شنبه 31 مرداد 1391, 21:06 عصر
حسن این روش در اینه که دیگه با ConnectionString, provider و بازکردن اتصال و این کارهای آزار دهنده اینچنین مواجه نخواهید بود

rezaprogrammer
شنبه 20 آبان 1391, 00:30 صبح
یه سوال: من میخام اطلاعاتی که در یک فیلد وجود داره به صورت غیر تکراری موقع افزودن سطر جدید در یک ComboBox اضافه بشه تا کاربر بتونه انتخاب کنه یا با تایپ کردن کمک بشه بهش تا نزدیک ترین آیتم به موردی که تایپ کرده در جعبه متن مشاهده بشه. به نظرتون چه جوری اینکارو بکنم؟