我尝试将数据从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();
}
答案 0 :(得分:5)
对于第二个组合框,您要添加datareader dreaderFamille :
TreComBoxFamille.Items.Add(dreaderFamille);
虽然您应该添加 queryFamille :
queryFamille = dreaderFamille[0].ToString();
TreComBoxFamille.Items.Add(queryFamille);
如果您注意ComboBox
中的项目文本,您会猜到问题,当您查看代码时,您会看到您的猜测是真的。
答案 1 :(得分:0)
对于第二个comboxbox,您使用了错误的对象来添加
TreComBoxFamille.Items.Add(queryFamille);
答案 2 :(得分:0)
你应该这样做:
while (dreaderFamille.Read())
{
queryFamille = dreaderFamille[0].ToString();
TreComBoxFamille.Items.Add(queryFamille);
}