Попытка (безуспешно) получить DataGridView, чтобы отразить изменения в базовых данных - PullRequest
0 голосов
/ 13 марта 2012

Я новичок в этой группе, но недавно разработал вкус к 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 голосов
/ 14 марта 2012

вызов this.dataGridViewControlTable.ResetBindings() - подробности, включая пример источника и пояснения, см. MSDN .

0 голосов
/ 13 марта 2012

Возможно, вам придется вызвать DataBind () в GridView, чтобы обновить его.

Итак, в InitializeGridView () после установки DataSource попытайтесь:

this.dataGridViewControlTable.DataBind();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...