插入web应用程序中的DataTable

本文关键字:DataTable 应用程序 web 插入 | 更新日期: 2023-09-27 17:57:56

我有以下情况:

ASP.NET Ajax web应用程序使用DataTable将数据写入数据库。该表非常简单,包含一个自动递增id。

我的问题:

如果现在有多个用户使用web应用程序,是否会将相同的主键id提供给多个DataRow(在将数据插入数据库时导致错误(重复键))?如果我是对的,那么在调用.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.

插入web应用程序中的DataTable

我无法获得您想要的内容,但是.NewRow()行不会自动添加id。

仅适用于例如

for(int i = 0; i < 10; i++)
    {
        row = table.NewRow();
        row["id"] = i;
        row["item"] = "item " + i.ToString();
        table.Rows.Add(row);
    }

在这里,您通过.NewRow()添加新行,但在您的情况下必须提供值(Unique Id==主键)。

ID只生成并使用一次,因此,如果用户mssql将自动递增设置为true,或者在oracle数据库中设置用户序列对象或用户GUID,这将在应用程序失败、多个实例中网络延迟或没有单例线程位置的情况下防止重复ID。