-
کمبو باکس در سی شارپ
با سلام .
من یه دیتا بیس دارم که به کمبو باکس اضافش کردم حالا میخام بدونم چه شکلی میشه کاری کرد که با نوشتن در کبوباکس ( یا هرچیز دیگه که بشه ) به طور خودکار با استفاده از اطلاعات دیتابیس کامل بشه .
مثلا تو اطلاعاتم کلمه محسن هست ، وقتی بنویسم مح خودش تکمیلش کنه محسن .
ممنون
-
سلام
چطور به دیتابیس متصل میشوید؟ پروژه تان چه نوعی است؟
در WinForm کافی است، خصیصه AutoCompleteMode را تنظیم کنید و Items یا DataSource را از فهرست متن های دلخواه پرکنید.
کدنمونه دستی:
کد:
this.comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems;
this.comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
this.comboBox1.Items.Add("علی");
this.comboBox1.Items.Add("محیط");
this.comboBox1.Items.Add("محمد");
this.comboBox1.Items.Add("محسن");
کدنمونه به کمک ارتباط با DataSet:
کد:
string connectionstring = "---CONNECTION STRING---";
this.comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems;
this.comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
using(var da = new System.Data.SqlClient.SqlDataAdapter("SELECT [UserName] FROM [Users] WHERE [Filter] > 5;", connectionstring))
{
var dt = new System.Data.DataTable();
da.Fill(dt);
this.comboBox1.DisplayMember = "UserName";
this.comboBox1.DataSource = dt;
}
کدنمونه به کمک ارتباط با EF:
کد:
public class DataContext
: System.Data.Entity.DbContext
{
public DataContext()
: base("---CONNECTION STRING---")
{
}
public System.Data.Entity.DbSet<User> Users { get; set; }
}
[Table("Users")]
public class User
{
[Key]
public int UserID { get; set; }
public string UserName { get; set; }
public int Filter { get; set; }
}
//...
this.comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems;
this.comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
using (var da = new DataContext())
{
this.comboBox1.DataSource = da.Users.Where(r => r.Filter > 5).Select(r => r.UserName).ToList();
}