我正在处理一个窗口表单应用程序。我有一个comboBox和一个listBox。在我的comboBox中,我有5个项目,我想将我从comboBox中选择的相应项目显示到listBox。
假设我选择第1项,它将显示第1项。如果我选择第2项,它将显示第2项,第1项将消失,反之亦然。到目前为止,我已经尝试过这段代码
listBox1.Items.Add(name)
此ListBox添加语句将新项目添加到listBox,例如item1,item2,item3等,这不是我想要的。
using System.IO;
using System;
class Program
{
static void Main()
{
Console.WriteLine("Hello, World!");
private void fill_checkListBox()
{
myConn = new SqlConnection("Server = localhost; Initial Catalog= dbName; Trusted_Connection = True");
try
{
myConn.Open();
int index = applicationComboBox.SelectedIndex + 1;
string query = " SELECT td.chineseName, ad.applicationId, aud.applicationId, ad.applicationName FROM[AppUser_Detail] as aud LEFT OUTER JOIN[Teacher_Detail] as td ON aud.teacherId = td.teacherId LEFT OUTER JOIN[Application_Detail] as ad ON aud.applicationId = ad.applicationId LEFT OUTER JOIN[Class_Detail] as cd ON aud.classId = cd.classId where aud.applicationId = '" + index + "' AND NOT(td.teacherId IS NULL AND cd.classId IS NULL)";
myCommand = new SqlCommand(query, myConn);
SqlDataReader dr = myCommand.ExecuteReader();
//Reading all the value one by one
while (dr.Read())
{
//column is 1 in Application_Detail Data
//string value = applicationComboBox.GetItemText(applicationComboBox.Items[i]);
string name = dr.GetString(0);
teacherCheckListBox.Items.Clear();\ updated this line teacherCheckListBox.Items.Add(name);
}
//teacherCheckListBox.DataSource = dt;
myConn.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}
答案 0 :(得分:1)
使用JOIN
,这将清除整个列表,然后在列表框中添加您的新项目。
答案 1 :(得分:1)
试试这段代码......
private void fill_checkListBox()
{
myConn = new SqlConnection("Server = localhost; Initial Catalog= ChungSingDB; Trusted_Connection = True");
try
{
myConn.Open();
int index = applicationComboBox.SelectedIndex;
string query = " SELECT td.chineseName, ad.applicationId, aud.applicationId, ad.applicationName,class, secondary FROM[AppUser_Detail] as aud LEFT OUTER JOIN[Teacher_Detail] as td ON aud.teacherId = td.teacherId LEFT OUTER JOIN[Application_Detail] as ad ON aud.applicationId = ad.applicationId LEFT OUTER JOIN[Class_Detail] as cd ON aud.classId = cd.classId where aud.applicationId = '" + index + "' AND NOT(td.teacherId IS NULL AND cd.classId IS NULL)";
myCommand = new SqlCommand(query, myConn);
SqlDataReader dr = myCommand.ExecuteReader();
teacherCheckListBox.Items.Clear();
while (dr.Read())
{
string name = "";
name = dr.GetString(0);
if (applicationComboBox.SelectedIndex == index)
{
teacherCheckListBox.Items.Add(name);
}
}
myConn.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
答案 2 :(得分:1)
alot of ways to do this
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
listBox1.Items.Clear();
listBox1.Items.Add(comboBox1.Text);
}