C# 数据集更新不起作用?WPF C

C# 数据集更新不起作用?WPF C,c#,wpf,dataset,C#,Wpf,Dataset,我有一个WPF的情况,一个页面有一个带有客户机的datagrid,另一个页面有一个字段来填充新客户机 我希望新客户机页面搜索最高的clientID,增量为1的新客户机,这听起来很简单,但我有一个问题 在表的表适配器中,我添加了一个新查询:SELECT MAXclientID FROM clients 我使用以下命令执行查询: DataSet1TableAdapters.klantenTableAdapter tableAdapter = new DataSet1TableAdapters.kla

我有一个WPF的情况,一个页面有一个带有客户机的datagrid,另一个页面有一个字段来填充新客户机

我希望新客户机页面搜索最高的clientID,增量为1的新客户机,这听起来很简单,但我有一个问题

在表的表适配器中,我添加了一个新查询:SELECT MAXclientID FROM clients

我使用以下命令执行查询:

DataSet1TableAdapters.klantenTableAdapter tableAdapter = new DataSet1TableAdapters.klantenTableAdapter();
DataSet1 datasetvar = new DataSet1();
int returnValue = (int)tableAdapter.GetMaxKlantnr();
这一次效果很好。我在returnValue中得到了最高的值,但是如果我第二次转到新的客户端页面,clientID仍然是一样的


我试图用tableAdapter.Updatedatasetvar更新数据集;但这没有道理

Lars您使用的是什么数据库?将ID列设置为identity,它将由db自动生成,您的解决方案无论如何都不支持任何并发性,而且这不是读取最大ID并向其中添加1的方法…

您需要在添加新行时设置它。然后,适配器将其作为插入执行。适配器只提交更改

代码看起来几乎像:

var newRow = ClientTable.NewRow();

newRow["ClientID"] = GetNewID();
...set other fields...

ClientTable.Rows.Add(newRow);

Adapter.Update(ClientTable);

为什么要在客户端上选择ID?为什么不让数据库分配ID?我怎么做?自动增量还是什么?我使用Microsoft SQL Server Compact 3.5。我在那里找不到身份。还有一个与此相关的问题:在我的INSERT查询中,我必须填写什么?现在我在客户端中使用INSERT值clientID、name、city。。。。等一旦该字段被标记为标识,就不必在插入中再指定clientid字段名和值。不确定,但我想SQL Compact支持标识……好吧,我知道了,怎么做。但这不是我的解决方案。A必须按照我在问题中所说的那样做,因为我想制作一个带有备份系统的程序。因此,一旦我的电脑崩溃或其他什么,只要点击一下,我就可以将互联网数据放回本地数据库。标识列不允许更改。。