2012-08-29 256 views
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也)。和一切工作就好了(可以连接到数据库,进行任何操作,将其保存(通过应用按钮,使用适配器“S 更新法)),直到香港专业教育学院决定让另一个选项卡。 另一个标签应该得到我的信息从其他地方(我曾与连一些外接设备)(几行),进入它的DataTable,并从数据库中其他行MERGE这一切是此选项卡上按照本教程:。website

当我尝试MERGE一些行,我可以在我的DB好和良好的UPDATE看到,但在我的第一个标签(在表单上),我可以看到两个不同的行(之一,如果它WASN“T感动和第二 - 就好像是更新)。我认为这件事情与清爽(试过的GridView的清爽,没‘T帮助),或一些其他元素’S刷新(但哪一个?...),我仍然无法找到它。 希望得到任何帮助......感谢

+0

现在找不到它,不幸的是..忘了提及,我重新运行应用程序后,我看到只有一行,因为它应该是。主要的问题是在运行时获得一行。 – Anton

+0

或者如果我看我的第一个选项卡后,我开始计划和合并(启动程序,然后合并,然后连接并期待在DB第一个选项卡上),也它了就好了。只有当我合并之前连接,我看到这些幻影.. – Anton

+0

追赶id到adapter.Fill方法的问题。它添加行而不是刷新它们。有人知道,如何避免这个问题? – Anton

回答

0

通过创建临时数据集,编辑它(通过数据行)和获取到数据库中与它处理。感谢所有的观察者:)