.NET DataSet未使用新行进行更新

时间:2015-11-30 09:35:06

标签: c# .net strongly-typed-dataset

我正在尝试在DataTable中添加一个新的类型行并将其更新到源但它无法正常工作

public partial class JobTableAdapter
{
    public OpenMassSenderCore.OpenMassSenderDBDataSet.JobRow getNewRow()
    {
        return OpenMassSenderDBDataSet.getInstance().Job.NewJobRow();
    }
    public void submitRow(OpenMassSenderCore.OpenMassSenderDBDataSet.JobRow row)
    {
        OpenMassSenderDBDataSet.getInstance().Job.Rows.Add(row);
        OpenMassSenderDBDataSet.getInstance().Job.AcceptChanges();
        Update(OpenMassSenderDBDataSet.getInstance().Job);//thats the default tableadapter's update
    }

    private static JobTableAdapter instance;
    public static JobTableAdapter getInstance()
    {
        if (instance == null) instance = new JobTableAdapter();
        return instance;
    }
}



    private void button1_Click(object sender, EventArgs e)
    {
        OpenMassSenderCore.OpenMassSenderDBDataSet.JobRow job=JobTableAdapter.getInstance().getNewRow();
        job.ID = 2;
        job.query = "";
        job.group = "smaplist1";
        job.sender_account = 1;
        job.status = OpenMassSenderCore.OpenMassSenderDBDataSet.JobRow.JobStatus.PENDING;
        job.user = 1;
        job.message =1;
        JobTableAdapter.getInstance().submitRow(job);
    }

如果我按两次按钮,我会得到密钥(ID)现有异常,所以这部分工作正常,唯一的问题是它没有更新数据库(访问)

1 个答案:

答案 0 :(得分:1)

嗯,呃,你打电话给AcceptChanges

你基本上说过了#34;好的,这个数据现在已经提交了,一切都很好。顺便说一句,DataAdapter,您可以将此数据集的所有更改提交到数据库吗?感谢#&34; "当然,让我看看......好吧,你的数据集没有变化,所以我已经完成了#34;。您丢弃了数据适配器可用于实际更新数据库的唯一信息:)

(作为旁注 - 请不要在C#中编写Java。它很痛。而DataSet是一项古老的技术,多年来都没有更新过,你可能想要找到更多更新的东西。)