我嘗試從SQL Server(2個表:Famille
和Compte
)將數據獲取到Form_Load()
中的2個組合框中。將數據從SQL Server加載到組合框中
但正如你看到的結果,它與第一個組合框工作,但第二個它顯示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();
}
對於要添加DataReader的第二個組合框。 TreComBoxFamille.Items.Add(dreaderFamille); –
對我來說,這似乎有點奇怪,可以將您的顯示文本和您的值分別放回到兩個單獨的(和看似無關的)查詢中。如果這些值在某種程度上是相關的,那麼您應該對錶進行連接並一次性提取數據(這樣可以節省往返數據庫的時間)。我知道這並不是真正回答所問的問題,但除非我錯過了一些東西,這是你真正應該看的東西。 – user2366842
那麼該怎麼做,因爲我這樣做的時候知道哪裏的問題當DB不能返回數據 – Amin