在Web应用程序中插入DataTable

时间:2016-07-21 10:28:53

标签: c# asp.net database datatable

我有以下情况:

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.

2 个答案:

答案 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在应用程序失败的情况下,网络在多个实例中延迟和/或没有单独的线程位置。