好人!我在这里遇到一个问题,真的需要你的帮助。我有一个 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,没有帮助)或其他一些元素的刷新(但哪个?...)有关,但我仍然找不到它。将不胜感激任何帮助...谢谢