我正在尝试在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)现有异常,所以这部分工作正常,唯一的问题是它没有更新数据库(访问)
答案 0 :(得分:1)
嗯,呃,你打电话给AcceptChanges
。
你基本上说过了#34;好的,这个数据现在已经提交了,一切都很好。顺便说一句,DataAdapter,您可以将此数据集的所有更改提交到数据库吗?感谢#&34; "当然,让我看看......好吧,你的数据集没有变化,所以我已经完成了#34;。您丢弃了数据适配器可用于实际更新数据库的唯一信息:)
(作为旁注 - 请不要在C#中编写Java。它很痛。而DataSet是一项古老的技术,多年来都没有更新过,你可能想要找到更多更新的东西。)