System.ArgumentException: Item has already been added. Key in dictionary: 'Id' Key being added: 'Id'

Fingter 2007-07-07 09:24:46
public partial class Send : System.Web.UI.Page
{
private static DataTable addressDataTable;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (addressDataTable == null)
curentAddressTable();
else
addressDataTable.Clear();
……

private void curentAddressTable()
{
addressDataTable = new DataTable();
addressDataTable.Clear();
addressDataTable.Columns.Clear();
addressDataTable.Columns.Add("Id");//System.ArgumentException: Item has already been added. Key in dictionary: 'Id' Key being added: 'Id'
addressDataTable.Columns.Add("手机");
addressDataTable.Columns.Add("姓名");
}
...全文
1020 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Pittypat 2007-07-09
  • 打赏
  • 举报
回复
private static object __root = null;
private static object DataTableSyncRoot
{
get
{
if (__root == null)
System.Threading.Interlocked.CompareExchange(ref __root, new Object(), null);
return __root;
}
}

lock(DataTableSyncRoot)
{
addressDataTable = new DataTable();
... ...
}
Pittypat 2007-07-09
  • 打赏
  • 举报
回复
addressDataTable是一个静态变量,你要知道,Web应用是多线程的,你没有处理多线程同步的问题,如果两个用户同时访问这个页面,可能就会产生这个问题。
yaya82 2007-07-08
  • 打赏
  • 举报
回复
不要用Id作为column, table中有默认Id的column,换个名字吧
Fingter 2007-07-08
  • 打赏
  • 举报
回复
top
xeppp 2007-07-08
  • 打赏
  • 举报
回复
最好 把那个DataTable 放在属性里 楼上的意见也看一下

17,742

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧