2012-04-05 48 views
0

我具有从数据库填充数据字段JobCode的组合框排序在组合框的值。还有的jobcode 1000,当用户需要选择一个jobcode他必须通过所有的jobcode S IN组合框向下滚动。我能做到这一点的这样一种方式,如果用户键入的jobcode一些信它会显示jobcode S的与在列表的顶部在组合框中该字母开头,这样用户可以轻松选择。例如,像在combobox中的keypressevent中添加一些代码。通过键入

用户必须从jobcode S IN列表中仍然选择不保留部分或输入不正确的数据,这将导致在插入和更新的时间错误的数据输入。

public void jobcomboboxload() 
{ 
     OleDbConnection oleDbConnection1 = new System.Data.OleDb.OleDbConnection(connString); 
     oleDbConnection1.Open(); 
     OleDbCommand oleDbCommand1 = new System.Data.OleDb.OleDbCommand("Select jobpk,jobcode from jobcodemastertable", oleDbConnection1); 
     OleDbDataReader reader = oleDbCommand1.ExecuteReader(); 
     DataTable dt = new DataTable(); 
     dt.Columns.Add("jobpk", typeof(int)); 
     dt.Columns.Add("jobcode", typeof(string)); 
     dt.Load(reader); 
     cmbjobcode.ValueMember = "jobpk"; 
     cmbjobcode.DisplayMember = "jobcode"; 
     cmbjobcode.DataSource = dt.DefaultView; 

     oleDbConnection1.Close(); 
    } 

jobcode是一个独特的领域。

+1

sreenath :)像你提到的“*请帮助pleaseeeeeeee *”这样的短语在本网站上没有被广泛接受。所以,不要将它们与未来的问题混合在一起。 – Lion 2012-04-05 21:16:55

+0

srry会保重 – 2012-09-02 09:42:31

回答

1
  • 使用cmbjobcode.AutoCompleteMode = AutoCompleteMode.Suggest(或枚举的其他 值)
  • 使用cmbjobcode.AutoCompleteSource = AutoCompleteSource.ListItems
  • 更改您的查询,包括条款ORDER BY场上JOBCODE

请不要忘记围绕您的OleDbConnection,OleDbCommand和OleDbDataReader的语句using。这将确保正确处理前面提到的变量。

对于检查不完整值,您应该添加验证事件,并在此情况下,检查输入的文本是否存在于您的字符串中。
组合框有一个名为FindStringExact()方法,可以帮助。

+0

你怎么做这些点? – phadaphunk 2012-04-05 21:28:42

+0

选择该行(一次),然后在答案框上按下编号列表或按钮列表 – Steve 2012-04-05 21:33:13

+0

当您在此处输入/编辑帖子时,是其中一种格式化选项。在右侧的文本框上方。 – 2012-04-05 21:33:31

1

设置你的ComboBoxAutoCompleteMode属性SuggestAutoCompleteSourceListItems,否则你将无法看到建议。

就像史蒂夫说的,你可以改变你的查询并在你的请求字段中添加ORDER BY来设置你希望他们在你的SELECT语句中的顺序。

希望这有助于如果您有任何问题,请不要犹豫。