Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.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
C# 从列中获取所有行,并使用all从另一个表中选择行_C#_Sql Server_Listbox - Fatal编程技术网

C# 从列中获取所有行,并使用all从另一个表中选择行

C# 从列中获取所有行,并使用all从另一个表中选择行,c#,sql-server,listbox,C#,Sql Server,Listbox,我有两张桌子。如何使用以下代码所选的行 var query = "SELECT ID FROM EmpInfo WHERE Status = @Status; 使用获取的行用select查询填充列表框 var query2 = "SELECT Code From DataInfo WHERE ID = @ID; 由于它必须是动态的,我认为我不能使用SQL Reader将其设置为变量。您可以只使用一条SQL语句,例如 string sqlqry="SELECT Code FROM DataIn

我有两张桌子。如何使用以下代码所选的行

var query = "SELECT ID FROM EmpInfo WHERE Status = @Status;
使用获取的行用select查询填充列表框

var query2 = "SELECT Code From DataInfo WHERE ID = @ID;

由于它必须是动态的,我认为我不能使用SQL Reader将其设置为变量。

您可以只使用一条SQL语句,例如

string sqlqry="SELECT Code FROM DataInfo WHERE ID IN (SELECT ID FROM DataInfo WHERE Status=@Status)";
然后按如下方式填写列表框:

using (SqlDataAdapter myadapter = new SqlDataAdapter(sqlqry, connection))
            {            
                // fill a data table
                var t = new DataTable();
                myadapter.Fill(t);

                // Bind the table to the list box
                listBox1.DisplayMember = "NameOfColumnToBeDisplayed";
                listBox1.ValueMember = "NameOfColumnToUseValueFrom";
                listBox1.DataSource = t;
            }

希望这些帮助。

您可以在两个单独的变量中获取行,并根据条件相应地加载或重新加载列表框。
如果行数较少,这可能是一个很好的选择。如果数据集很大,则根据条件重新获取数据集并加载列表框。在内存中保存大数据集不是一个好的选择。

是否考虑加入这些表?使用SQLJOINS@un-幸运的是,虽然连接可以正常工作,但我认为在子查询中使用
效果更好。非常感谢!!正是我需要的!这是如何解决使用一个查询在另一个查询中定义条件的问题的?很抱歉,我理解错了,我以为您希望根据特定条件在列表框中动态加载这两个结果。@stevethegrk的答案是好的。