我有以下情况:
ASP.NET Ajax Web应用程序使用DataTable将数据写入数据库。该表非常简单,包含自动增量ID。
我的问题:
如果现在有多个用户使用Web应用程序,那么是否可以为多个DataRows提供相同的主键ID(在将数据插入数据库时会导致错误(重复键))?如果我是对的,那么在调用.NewRow()时会生成id。
感谢您的帮助!
一个例子:
----------------------------------------------------------
| ID (primary, autoincrement) | C1 | C2 |
----------------------------------------------------------
DataTable dt = new DataTable(name);
DataReader dr = ...;
dt.Load(dr); // => Now the data table has the rows from the database, including column definitions.
DataRow dr = dt.NewRow();
// => Now dr["ID"] is already set.
答案 0 :(得分:1)
我无法得到你想要的东西但是.NewRow()行不会自动添加id。
仅供参考。
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
mRecyclerView.setLayoutManager(layoutManager);
mAdapter = new AppsAdapter(this);
mRecyclerView.setAdapter(mAdapter);
RecyclerView.ItemAnimator itemAnimator = new DefaultItemAnimator();
itemAnimator.setAddDuration(1000);
itemAnimator.setRemoveDuration(1000);
mRecyclerView.setItemAnimator(itemAnimator);
在这里,您可以通过.NewRow()添加新行,但在您的情况下需要提供的值(唯一ID ==主键)。
答案 1 :(得分:0)
生成ID并仅使用一次,因此如果用户mssql将auto increment设置为true,或者在oracle数据库用户序列对象或用户GUID中,这将防止重复ID在应用程序失败的情况下,网络在多个实例中延迟和/或没有单独的线程位置。