如何在新的DataTable中添加新列但是Erorr
private void LoadtoList()
{
SqlDataAdapter sa = new SqlDataAdapter("SELECT * FROM EmpSign", _constr);
dt = new DataTable("CCTVTable");
sa.Fill(dt);
dtpass = new DataTable("CCTVpassword");
SqlDataAdapter sa2 = new SqlDataAdapter("SELECT PASSWORD FROM Emp e WHERE e.EmpID IN ('f2123', 'f2124', 'f2126', 'rt015', 'f2133')",
ConfigurationManager.ConnectionStrings["SaraburiEmp"].ConnectionString);
sa2.Fill(dtpass);
DataColumn dc = new DataColumn();
dc = dtpass.Columns["password"];
dt.Columns.Add(dc);
}
列'PASSWORD'已经属于 另一个DataTable。描述:一个 未处理的异常发生在 当前网络的执行 请求。请查看堆栈跟踪 有关错误的更多信息 它起源于代码。
异常详细信息: System.ArgumentException:Column “密码”已经属于另一个人了 数据表。
来源错误:
Line 1040: DataColumn dc = new DataColumn();
Line 1041: dc = dtpass.Columns["password"];
Line 1042: dt.Columns.Add(dc);
Line 1043: }
Line 1044:}
答案 0 :(得分:2)
首先,您必须从dtpass表中删除列:
...
DataColumn dc = dtpass.Columns["password"];
dtpass.Columns.Remove("password");
dt.Columns.Add(dc);
答案 1 :(得分:2)
您在例外消息中有解释:“列'PASSWORD'已经属于另一个DataTable ”
这基本上意味着您无法重复使用此列。您必须创建一个新的(类似于此密码列),然后将其添加到表。
答案 2 :(得分:0)
错误本身表示“列'PASSWORD'已经属于另一个DataTable ”。因为你已经在DataTable中使用了密码。
与DDL相同,您无法在单个表中添加具有相同名称的多个数据列:)