很抱歉,如果这是一个非常愚蠢的问题,但我已经围绕这个问题转了一圈。
我正在使用带有Windows窗体的C#来创建应用程序,并且有一个方法可以绑定数据网格视图中的数据。以下是该方法的示例:
private void BindGrid()
{
string constring = @"Data Source=.\SQLEXPRESS; Database=DB;
integrated security=False;User ID=UserID;Password=Password";
using (SqlConnection con = new SqlConnection(constring))
{
using (SqlCommand cmd = new SqlCommand("SET DATEFIRST 1 Select
Table1.Value1 From Table1...........", con))
{
cmd.CommandType = CommandType.Text;
using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
{
using (DataTable dt = new DataTable())
{
sda.Fill(dt);
dataGridView1.DataSource = dt;
}
}
}
}
}
我调用此方法三次,一次是在加载应用程序时,一次是在我更新数据时,一次是从与其他方法无关的按钮调用。
不幸的是,此方法仅在按钮单击时起作用,而在其他方式调用时则不起作用。我尝试过多种方式解决这个问题,包括刷新数据源并从另一个按钮调用方法。
为什么此方法仅在从按钮单击调用时才起作用,如何从应用程序的其他区域以编程方式调用它?
在这里工作:
private void button1_Click(object sender, EventArgs e)
{
BindGrid();
}
在这里不起作用:
private void button3_Click(object sender, EventArgs e)
{
if (dataGridView1.SelectedRows.Count > 0)
{
MethodAdjustRemaining();
MethodPackOneSent();
MethodMessage();
//MethodUpdateData();
BindGrid();
}
else
{
MessageBox.Show("Please select a row");
}
}
非常感谢您的帮助:)