C# 正在尝试在WinForm App中维护数据集

C# 正在尝试在WinForm App中维护数据集,c#,.net,vb.net,winforms,dataset,C#,.net,Vb.net,Winforms,Dataset,由于断开连接的原因,我正在将内部web应用程序转换为winform应用程序,遇到以下问题 在webapp上的函数SaveMe()中,Person.ascx.vb页面上有以下代码--> 我一直关注的部分是如何在WinForm应用程序上逻辑地创建数据集 我是否应该将所有字段刮除并将其放入数据集中?如何(这是我在等待SO建议时将研究/尝试的内容) 编辑 会话正在LoadMe()Sub中创建/填充,就像这样--> 编辑 我想做的是创建一个表单级变量-->privatedataset\u person

由于断开连接的原因,我正在将内部web应用程序转换为winform应用程序,遇到以下问题

在webapp上的
函数SaveMe()
中,Person.ascx.vb页面上有以下代码-->

我一直关注的部分是如何在WinForm应用程序上逻辑地创建数据集

我是否应该将所有字段刮除并将其放入数据集中?如何(这是我在等待SO建议时将研究/尝试的内容)


编辑

会话正在
LoadMe()
Sub中创建/填充,就像这样-->


编辑

我想做的是创建一个表单级变量-->
privatedataset\u personInfo
保存数据集,然后在我的
FormPaint(int personID)
中调用以下命令:

            _personInfo = ConnectBLL.BLL.Person.GetPerson(personID);
然后我使用它填充表单上的各个字段

接下来,在
btnUpdate\u Click()
上,我尝试了以下操作,但没有效果:

       void btnUpdate_Click(object sender, EventArgs e)
    {
        var areChanges = _personInfo.HasChanges();
        if (areChanges)
        {
            var whatChanged = _personInfo.GetChanges();
            var confirmChanges =
                MessageBox.Show(
                    "Are you sure you want to make these changes: " +
                    whatChanged.Tables[0].Rows[0].ItemArray.ToString(), "Confirm Member Info Changes",
                    MessageBoxButtons.YesNo, MessageBoxIcon.Hand);
            if (confirmChanges == DialogResult.Yes)
            {
                _personInfo.AcceptChanges();
                ConnectBLL.BLL.Person.Update(_personInfo);
            }
        }

        FormPaint(HUD.PersonId);
    }
我不清楚我做错了什么?我漏了一步吗


谢谢

在该片段中,数据集来自会话。什么时候开始


您当然可以在WinForms应用程序中使用数据集。是数据绑定问题吗

在该片段中,数据集来自会话。什么时候开始


您当然可以在WinForms应用程序中使用数据集。是数据绑定问题吗

您的问题可能是:

 if (confirmChanges == DialogResult.Yes)
 {
      _personInfo.AcceptChanges();
      ConnectBLL.BLL.Person.Update(_personInfo);
 }
AcceptChanges将准备更新的所有行的RowState设置为Unchanged。坦率地说,使用whatChanged可能更好,因为这样可以避免适配器重新检查更改的行

 if (confirmChanges == DialogResult.Yes)
 {
      ConnectBLL.BLL.Person.Update(whatChanged);
      _personInfo.AcceptChanges();
 }

您的问题可能是:

 if (confirmChanges == DialogResult.Yes)
 {
      _personInfo.AcceptChanges();
      ConnectBLL.BLL.Person.Update(_personInfo);
 }
AcceptChanges将准备更新的所有行的RowState设置为Unchanged。坦率地说,使用whatChanged可能更好,因为这样可以避免适配器重新检查更改的行

 if (confirmChanges == DialogResult.Yes)
 {
      ConnectBLL.BLL.Person.Update(whatChanged);
      _personInfo.AcceptChanges();
 }
首先,

如果你想对雅各布提出的问题有一个很好的解释,请阅读以下文章

我同意其他人的看法,你们似乎让事情变得比需要的更难

您不清楚ConnectBLL类是什么…它是自定义bizness对象还是强类型数据集

做数据绑定,这将自动保存将是一个非常长的职位,所以在这里有一对夫妇的链接代替



这些是我在google上找到的第一个链接,使用(winforms数据绑定强类型数据集的分步指令)作为搜索字符串。你可能会找到一个更好的。codeguru链接看起来不错。另一种方法是更彻底,而不是更专业

最棒的是……如果您能在winforms开发中为Chris销售一本书,那么关于数据绑定的章节(以及所有其他章节)都非常优秀

希望这有帮助。

首先

如果你想对雅各布提出的问题有一个很好的解释,请阅读以下文章

我同意其他人的看法,你们似乎让事情变得比需要的更难

您不清楚ConnectBLL类是什么…它是自定义bizness对象还是强类型数据集

做数据绑定,这将自动保存将是一个非常长的职位,所以在这里有一对夫妇的链接代替



这些是我在google上找到的第一个链接,使用(winforms数据绑定强类型数据集的分步指令)作为搜索字符串。你可能会找到一个更好的。codeguru链接看起来不错。另一种方法是更彻底,而不是更专业

最棒的是……如果您能在winforms开发中为Chris销售一本书,那么关于数据绑定的章节(以及所有其他章节)都非常优秀


希望这能有所帮助。

我不明白在设置数据集和保存数据集之间,更改是如何进入数据集的。这是装订的一部分吗?在我的winform应用程序上,我该怎么做呢?我不明白在设置和保存数据集之间,更改是如何进入数据集的。这是装订的一部分吗?在我的winform应用程序上,我将如何处理它?当您单步执行时,更改是否为false?如果是这样,那么您需要更新数据集中的值(手动或通过数据绑定)。是的,每次都是false…当您单步执行时,areChanges是否为false?如果是这样,那么您需要更新数据集中的值(手动或通过数据绑定)。是的,每次都是false…如果没有其他情况,那么正确的搜索字符串会得到+1,无论您相信与否,这有时是新solo开发的最大障碍。ConnectBLL是一个自定义业务层。我认为我的问题与约束有关。不久前,当我开始这个项目时,一个在inter-Tube的家伙告诉我不要使用MS数据绑定,他总是使用自己的。我现在意识到我遵循了他的建议的前半部分,而没有理解第二部分。感谢您花时间回答一个显然是
newb
的问题。为了将您的biz对象直接绑定到UI,biz objs必须实现某些接口……所有这些都在Chris Sales的书中进行了很好的解释。数据绑定可以是松鼠式的,但当它工作时,它就工作了。想象一下这样做…me.myTextBox.DataBindings.Add(“text”,myBizObject,“MyBizObjectProperty”),然后插入/更新就会自动发生。祝你好运SethIf nothing对于正确的搜索字符串,您会得到+1,信不信由你,这有时是新solo开发的最大障碍。ConnectBLL是一个自定义业务层。我认为我的问题与约束有关。不久前,当我开始这个项目时,一个家伙在管间