组合框未通过 SQL 数据适配器更新
Combo Box is not updating through SQL Data Adapter
我遇到了一个奇怪的问题,我不知道这是由于连接不良还是其他原因造成的。
问题我有一个组合框,我在 "Form Load" 事件中使用 SQL 数据 Table 填充值,直到今天它都运行良好。每次加载表单时,两个组合框都是空的,一个用于日期,另一个用于公司名称。我使用的代码如下。
public DataTable getResult(string query)
{
SqlDataAdapter da = new SqlDataAdapter();
DataTable dt = new DataTable();
SqlCommand cmd = new SqlCommand(query, con);
cmd.CommandTimeout = 0;
da.SelectCommand = cmd;
da.Fill(dt);
return dt;
}
private void Reports_Load(object sender, EventArgs e)
{
RevenueDate_dt = func.getResult(dateQuery);
foreach (DataRow dr in RevenueDate_dt.Rows)
{
comboBox1.Items.Add(dr["Global_Period_Month"].ToString());
}
Gpn_dt = func.getResult(GpnQuery);
foreach (DataRow dr in Gpn_dt.Rows)
{
comboBox2.Items.Add(dr["gpnname"].ToString());
}
}
当我在 SQL 服务器上执行时,查询显示完美的结果。
期待答案。
很难说发生了什么,但我想知道数据表对于您想要的东西是否有点矫枉过正。看起来普通的 DataReader 的开销要少得多,而且更容易调试。像这样:
public string[] getResult(string query, string ColumnName)
{
List<string> results = new List<string>();
SqlCommand cmd = new SqlCommand(query, con);
cmd.CommandTimeout = 0;
SqlDataReader reader = cmd.ExecuteReader();
int col = reader.GetOrdinal(ColumnName);
while (reader.Read())
{
results.Add(reader.GetString(col));
}
reader.Close();
return results.ToArray();
}
然后将项目添加到您的组合框中,它看起来像这样:
comboBox1.Items.AddRange(func.getResult(dateQuery, "Global_Period_Month"));
comboBox2.Items.AddRange(func.getResult(GpnQuery, "gpnname"));
我遇到了一个奇怪的问题,我不知道这是由于连接不良还是其他原因造成的。 问题我有一个组合框,我在 "Form Load" 事件中使用 SQL 数据 Table 填充值,直到今天它都运行良好。每次加载表单时,两个组合框都是空的,一个用于日期,另一个用于公司名称。我使用的代码如下。
public DataTable getResult(string query)
{
SqlDataAdapter da = new SqlDataAdapter();
DataTable dt = new DataTable();
SqlCommand cmd = new SqlCommand(query, con);
cmd.CommandTimeout = 0;
da.SelectCommand = cmd;
da.Fill(dt);
return dt;
}
private void Reports_Load(object sender, EventArgs e)
{
RevenueDate_dt = func.getResult(dateQuery);
foreach (DataRow dr in RevenueDate_dt.Rows)
{
comboBox1.Items.Add(dr["Global_Period_Month"].ToString());
}
Gpn_dt = func.getResult(GpnQuery);
foreach (DataRow dr in Gpn_dt.Rows)
{
comboBox2.Items.Add(dr["gpnname"].ToString());
}
}
当我在 SQL 服务器上执行时,查询显示完美的结果。 期待答案。
很难说发生了什么,但我想知道数据表对于您想要的东西是否有点矫枉过正。看起来普通的 DataReader 的开销要少得多,而且更容易调试。像这样:
public string[] getResult(string query, string ColumnName)
{
List<string> results = new List<string>();
SqlCommand cmd = new SqlCommand(query, con);
cmd.CommandTimeout = 0;
SqlDataReader reader = cmd.ExecuteReader();
int col = reader.GetOrdinal(ColumnName);
while (reader.Read())
{
results.Add(reader.GetString(col));
}
reader.Close();
return results.ToArray();
}
然后将项目添加到您的组合框中,它看起来像这样:
comboBox1.Items.AddRange(func.getResult(dateQuery, "Global_Period_Month"));
comboBox2.Items.AddRange(func.getResult(GpnQuery, "gpnname"));