update A set A.y=true where A.x in (select B.x from B)
Sorry,没有说清楚,是DataTable比较,用dataset也行
如DataTable A; DataTable B; 如何更新A,条件:如果B.x存在于A.x
某一行某一列是可以用datarow,與datacloumn拿到的。但不知你具體要干什麼。
foreach(DataRow dr in DataTableB.Rows) { string tmp = dr["x"].ToString(); DataRow[] rows = DataTableB.Select("x='" + tmp + "'"); if(rows.length>0) foreach(DataRow dr2 in rows) dr2["y"] = "true"; }
用sql效率高些,否则的话用dataset的update
tryforeach(DataRow dr in A.Rows) { if(B.Select(" x = " + dr[x].ToString() ).Length > 0) dr["flag"] = 1; }
To:Eddie005(暴走005) && brightheroes(闭关|那一剑的风情) 报dr["flag"]是ReadOnly不能修改 如: 11/5/2004 11:38:40 AMSystem.Data.ReadOnlyException: Cannot change ReadOnly property for the expression column. at System.Data.DataColumn.set_ReadOnly(Boolean value) at NETT.Staging.updateatm.BindAllItem() in d:\file\tonyking\project\nett\source\nett\staging\updateatm.aspx.cs:line 69
UPDATE huamingce SET zaizhi = 0 WHERE gonghao IN (SELECT gonghao FROM lizhi)
set A.y=true
where A.x in
(select B.x from B)
DataTable B;
如何更新A,条件:如果B.x存在于A.x
{
string tmp = dr["x"].ToString();
DataRow[] rows = DataTableB.Select("x='" + tmp + "'");
if(rows.length>0)
foreach(DataRow dr2 in rows)
dr2["y"] = "true";
}
{
if(B.Select(" x = " + dr[x].ToString() ).Length > 0)
dr["flag"] = 1;
}
报dr["flag"]是ReadOnly不能修改
如:
11/5/2004 11:38:40 AMSystem.Data.ReadOnlyException: Cannot change ReadOnly property for the expression column.
at System.Data.DataColumn.set_ReadOnly(Boolean value)
at NETT.Staging.updateatm.BindAllItem() in d:\file\tonyking\project\nett\source\nett\staging\updateatm.aspx.cs:line 69
SET zaizhi = 0
WHERE gonghao IN
(SELECT gonghao
FROM lizhi)
for(int i = 0; i< A.Rows.Length;i++)
{
if(B.Select("x = " + A.Rows[i][x].ToString()).Length > 0)
A.Rows[i]["flag"] = 1;
}