【发布时间】:2014-05-19 22:04:59
【问题描述】:
我的 C# 应用程序有问题,我不知道如何处理。这是我的学习应用,也是我第一次使用 C# 和 Visual Studio。
所以 - 我有一个带有 MenuStrip 的主表单 Form1,我可以在其中转到另一个表单(这是我的数据集中显示在 DataGridView 中的数据表)。我可以在无连接模式(将数据写入 .xml 文件)和连接模式(直接同步到我的数据库)下工作。
在主窗体中,我有一个 Switch_btn 按钮,我可以在其中更改我正在使用的模式。它使用一个类:
public static class Connection_mode
{
public static int connection = 0;
}
它只是像这样改变一个变量的值:
Connection_mode.connection = 1;
在另一种形式(类)Function 我有一个更新数据库的方法:
public void MethodToExec()
{
this.ds.WriteXml("D:\\sth.xml");
this.dataSet_baza.Tables["funkcja"].Merge(funkcjaTable);
this.funkcjaTableAdapter.Update(dataSet_baza.funkcja);
}
当我处于无连接模式时,我有一个本地 DataTable,我正在对其进行更改。在这种形式下,它正在工作并将所有数据从本地表发送到数据库 - 这很好。
这是我的主要问题:
当我单击主Form1 中的Switch_btn 时,我想将数据与数据库同步。我可以关闭所有其他表单,但是当我单击 Switch 时,我想从 Function 表单执行 MethodToExec()。
我已经在Switch_btn 代码中尝试过类似的东西:
var funkcja = new Function();
funkcja.MethodToExec();
但它没有更新数据库。
也许有更好的方法可以做到这一点,但我不知道如何。
【问题讨论】:
-
你不想创建一个 新的和空的
Function对象并调用它的 MethodToExec 方法(你用var funkcja = new Function();做的) - 您想使用现有的Function对象,其中包含所有应更新的数据。
标签: c# database forms methods ado.net