我想在ComboBox中显示所有记录,但记录显示在一行上。这是我的代码。我创建了2个类,从中检索数据。
数据处理程序代码:
public DataSet DataLoader(string _strQuery)
{
DataSet ds = new DataSet();
ds.Clear();
using (conn = new SqlConnection())
{
conn = Connection.getconnection();
oda = new SqlDataAdapter(_strQuery, conn);
oda.Fill(ds, "Temp");
conn.Close();
conn.Dispose();
oda.Dispose();
}
return ds;
}
数据类代码:
public System.String Loadbranch()
{
string BranchName = "";
string strquery = "select * from Expense";
DataHandler dh = new DataHandler();
System.Data.DataSet dsLoadData = new System.Data.DataSet();
dsLoadData = dh.DataLoader(strquery);
if (dsLoadData.Tables["Temp"].Rows.Count > 0)
{
for (int i = 0; i < dsLoadData.Tables["Temp"].Rows.Count; i++)
{
BranchName += dsLoadData.Tables["Temp"].Rows[i]["ExpenseID"].ToString();
}
}
return BranchName;
}
数据显示的主要表格:
private void Edit_User_Load(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Maximized;
this.MinimumSize = this.Size;
this.MaximumSize = this.Size;
cbsaveuserid.Items.Add(d.Loadbranch());
}
请帮我显示ComboBox中的所有记录,但不同的行。
答案 0 :(得分:1)
Items表示对象的集合。
修改LoadBranch()
方法以返回字符串集合(例如List<string>
),而不是一个连接字符串。
修改Edit_User_Load()
以循环整个集合,并将每个元素添加到cvsaveuserid.Items
集合。
我没有你的代码,所以我无法编译它,但我认为这样可行:
public List<string> Loadbranches()
{
List<string> branchNames = new List<string>();
string strquery = "select * from Expense";
DataHandler dh = new DataHandler();
System.Data.DataSet dsLoadData = new System.Data.DataSet();
dsLoadData = dh.DataLoader(strquery);
if (dsLoadData.Tables["Temp"].Rows.Count > 0)
{
for (int i = 0; i < dsLoadData.Tables["Temp"].Rows.Count; i++)
{
branchNames.Add(dsLoadData.Tables["Temp"].Rows[i]["ExpenseID"].ToString());
}
}
return branchNames;
}
private void Edit_User_Load(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Maximized;
this.MinimumSize = this.Size;
this.MaximumSize = this.Size;
foreach (string branchName in d.Loadbranches())
{
cbsaveuserid.Items.Add(branchName);
}
}