【发布时间】:2016-02-04 02:34:55
【问题描述】:
我试图从 SQL Server(2 个表:Famille 和 Compte)获取数据到 Form_Load() 的 2 个组合框中。
但正如您看到的结果,它适用于第一个组合框,但第二个显示System.Data.SqlClient.SqlDataReader
这是代码
private void Tresorerie_Load(object sender, EventArgs e)
{
conn = new SqlConnection(connstring);
conn.Open();
String queryCompte = "select NomCom from Compte";
String queryFamille = "select NomFam from Famille";
commCompte = new SqlCommand(queryCompte, conn);
commFamille = new SqlCommand(queryFamille, conn);
try
{
//Compte
commCompte.CommandType = CommandType.Text;
dreaderCompte = commCompte.ExecuteReader();
while (dreaderCompte.Read())
{
queryCompte = dreaderCompte[0].ToString();
TreComBoxCompte.Items.Add(queryCompte);
}
}
catch (Exception)
{
MessageBox.Show("Problem with load Compte");
}
finally
{
dreaderCompte.Close();
}
try
{
//Famille
commFamille.CommandType = CommandType.Text;
dreaderFamille = commFamille.ExecuteReader();
while (dreaderFamille.Read())
{
queryFamille = dreaderFamille[0].ToString();
TreComBoxFamille.Items.Add(dreaderFamille);
}
}
catch (Exception)
{
MessageBox.Show("Problem with load Famille");
}
finally
{
dreaderFamille.Close();
}
conn.Close();
}
【问题讨论】:
-
对于第二个组合框,您正在添加数据读取器。 TreComBoxFamille.Items.Add(dreaderFamille);
-
对我来说,在 2 个单独的(并且看似不相关的)查询中撤回显示文本和值似乎有点奇怪。如果这些值以某种方式相关,您可能应该对表进行连接并一次性提取所有数据(这也将节省往返数据库的行程)。我知道这并没有真正回答所问的问题,但除非我遗漏了什么,否则这是你真正应该看看的东西。
-
那么该怎么做,因为我这样做是为了知道当数据库无法返回数据时问题出在哪里
-
我想我误解了。没有意识到我们正在查看两个单独的下拉菜单。
标签: c# sql-server winforms combobox