【问题标题】:.NET DataSet not updating with new row.NET 数据集不更新新行
【发布时间】:2015-11-30 09:35:05
【问题描述】:

我正在尝试在 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);
    }

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

【问题讨论】:

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


    【解决方案1】:

    嗯,呃,你打电话给AcceptChanges

    你基本上是说“好的,这个数据现在已经提交了,一切都很好。顺便问一下,DataAdapter,你能把这个数据集上的所有更改提交到数据库吗?谢谢。” “当然,让我看看......好吧,你的数据集没有变化,所以我完成了”。您已经丢弃了数据适配器可用于实际更新数据库的唯一信息:)

    (附带说明 - 请不要用 C# 编写 Java。这很痛苦。而且 DataSet 是一项多年未更新的古老技术,您可能想找到一些更新的东西。)

    【讨论】:

    • 似乎我的代码产生了“我是一个 JAVA DEV”:) ,我猜你的意思是单例中的 get 方法...。至于数据集,这是一个学校项目,我的教授希望我们使用它。
    猜你喜欢
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-25
    • 1970-01-01
    相关资源
    最近更新 更多