0

好人!我在这里遇到一个问题,真的需要你的帮助。我有一个 Winforms 应用程序,它有几个选项卡。它连接到 MS SQL Server 2008 数据库,并在我们连接到数据库的第一个选项卡上显示 DataGridView:

private void button_ConnectDB_Click(object sender, EventArgs e)
{
    if (sqlConnection == null || sqlConnection.State != ConnectionState.Open)
        sqlConnection = new SqlConnection(connectionString);
    sqlConnection.Open();
    try
    {
        dataAdapter = new SqlDataAdapter(queryStringUsers, sqlConnection);
        SetConnectDBObjects();
        SetConnectDBButtons();
    }
    catch
    {
        ShowUnableToConnect();
        return;
    }

}

并从 DB 获得一些信息:

private void button_SpecAcc_Click(object sender, EventArgs e)
    {
        dataGridView1.DataSource = this.usersBindingSource;
        LoadData(ref dataAdapter, ref clientDataSet, TAB_USERS);
        dataGridView1.ReadOnly = false;
    },

其中LoadData实际上是:

private void LoadData(ref SqlDataAdapter dataAdapter, ref clientDataSet dataset, string table)
    { dataAdapter.Fill(dataset, table); }

我将 dataAdapter 直接连接到 SQL Server,因此它是自动配置的(所有操作,如 INSERT、UPDATE、DELETE 也是)。一切正常(可以连接到数据库,进行任何操作,保存它(通过应用按钮,它使用适配器的更新方法)),直到我决定创建另一个选项卡。另一个选项卡应该让我得到信息(几行)从其他地方(我连接的一些ext设备),将其放入DataTable并与数据库中的其他行合并。按照本教程在此选项卡上完成所有操作:网站

当我尝试合并某些行时,我可以在我的数据库中看到很好的UPDATE,但是在我的第一个选项卡(在表单上)中,我可以看到两个不同的行(一个,好像它没有被触及,第二个 - 好像它已更新)。我认为它与刷新(尝试刷新 GridView,没有帮助)或其他一些元素的刷新(但哪个?...)有关,但我仍然找不到它。将不胜感激任何帮助...谢谢

4

1 回答 1

0

通过创建临时数据集、编辑它(通过 DataRows)并将其放入数据库来处理它。感谢所有的观察者:)

于 2012-09-05T09:51:52.060 回答