尝试(不成功)获取DataGridView以反映对底层数据的更改

时间:2012-03-13 16:11:37

标签: c# sql-server winforms

我是这个小组的新手,但最近开始尝试c#。现在,我正在解决这个问题。拥有可以更改基础数据的各种控件的winform。按下按钮时,我希望DataGridView能够反映数据中的更改。

我真的很挣扎。

以下是代码的简化版本:

namespace WinFormsAppReportsPortal
{
  public partial class Form1 : Form
  {
    public Form1(){
        InitializeComponent();
    }

    SqlDataAdapter myAdapt = null;
    DataSet mySet = null;
    DataTable myTable = null;

    private void Form1_Load(object sender, EventArgs e){
        InitializeGridView();
    }

    private void btRunProcessAndRefresh_Click(object sender, EventArgs e){
        Process.Start(@"\\fileserve\department$\ReportScheduler_v3.exe", "12");
        InitializeGridView();
    }

    private void btnALWAYSWORKS_Click(object sender, EventArgs e) {
        InitializeGridView();
    }

    private void InitializeGridView() {
      using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings ["xxx"].ConnectionString))
        {
        myAdapt = new SqlDataAdapter("SELECT * FROM WHyy.dbo.Controltb_zzz ORDER BY XLReportDescription", conn);
        mySet = new DataSet();
        myAdapt.Fill(mySet, "AvailableValues");
        myTable = mySet.Tables["AvailableValues"];

        this.dataGridViewControlTable.DataSource = myTable;
        this.dataGridViewControlTable.AllowUserToOrderColumns = true;
        }
    }

  }
}

2 个答案:

答案 0 :(得分:0)

您可能必须在GridView上调用DataBind()才能刷新它。

因此,在InitializeGridView()中,设置DataSource后尝试:

this.dataGridViewControlTable.DataBind();

答案 1 :(得分:0)

致电this.dataGridViewControlTable.ResetBindings() - 有关详细信息,包括示例来源和说明,请参阅MSDN