Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过listbox获取SQL数据_Sql_Listbox - Fatal编程技术网

通过listbox获取SQL数据

通过listbox获取SQL数据,sql,listbox,Sql,Listbox,好的,我要做的是单击我拥有的列表框中的一项,该列表框根据用户在文本框中键入的内容从sql数据库获取数据 现在,当我在第一个列表框中单击该项目时,我需要在第二个列表框中显示与该项目相关的更多信息。 当用户在文本框中输入名称时,sql中的前10个显示出来,现在我有了它,我需要单击其中一个项目,并在下一个列表框中获取该客户机的“任务”。任务是数据库中的事务 我非常确定我的代码是正确的,我没有收到任何错误,但是列表框中没有显示任何内容 这是我的密码: private void listBox1_Sele

好的,我要做的是单击我拥有的列表框中的一项,该列表框根据用户在文本框中键入的内容从sql数据库获取数据

现在,当我在第一个列表框中单击该项目时,我需要在第二个列表框中显示与该项目相关的更多信息。 当用户在文本框中输入名称时,sql中的前10个显示出来,现在我有了它,我需要单击其中一个项目,并在下一个列表框中获取该客户机的“任务”。任务是数据库中的事务

我非常确定我的代码是正确的,我没有收到任何错误,但是列表框中没有显示任何内容

这是我的密码:

private void listBox1_SelectedValueChanged(object sender, EventArgs e)
{
   string item = listBox1.SelectedItem.ToString();

   if (listBox1.ContainsFocus)
   {
       if (item == "")
       {

       }
       else
       {
           var con2 = Conn.ConnString();

           using (SqlConnection myConnection2 = new SqlConnection(con2))
           {
               string oString2 = "select CLIENTMATTERS.MATTER, CLIENTMATTERS.DESCRIPTION from CLIENTMATTERS join CLIENTCODES on CLIENTMATTERS.CLIENT = CLIENTCODES.CLIENT Where CLIENTCODES.DESCRIPTION = '@code1'";


               SqlCommand oCmd = new SqlCommand(oString2, myConnection2);
               oCmd.Parameters.AddWithValue("@code1", item);
               myConnection2.Open();

               oCmd.Connection.Open();
               List<string> codelist2 = new List<string>();

               using (SqlDataReader oReader2 = oCmd.ExecuteReader())
               {
                  if (oReader2.HasRows)
                  {
                     string value = string.Empty;
                     while (oReader2.Read())
                     {
                        codelist2.Add(oReader2["MATTER"].ToString());
                     }
                   }
               }

               this.listBox2.DataSource = codelist2;
           }
       }
    }
}
您需要使用BindingList而不是List

列表未实现ListChanged事件,因此当数据源发生更改时,不会通知ListBox

在您的示例中,它将如下所示:

BindingList<string> codelist2 = new BindingList<string>();
有关更多信息,请参阅