我有这个query

UPDATE A
Set A.NUM = B.NUM
FROM A
JOIN B  on A.ID = B.ID
where A.Code in ()


A.Code值来自datatable。我如何添加到此query

最佳答案

为什么不编写代码以使用数据表用逗号分隔ID的字符串呢?

            string lstOfIDs = string.Empty;
            DataTable dt = new DataTable();
            foreach (DataRow drow in dt.Rows)
            {
                lstOfIDs += drow["IdColumnHere"].ToString()+",";
            }

            lstOfIDs.TrimEnd(',');


然后,您可以在IN子句中传递lstOfIds。

编辑1:

我认为A.Code In ()正在检查代码而不是ID。希望您将代码放在lstOfID中。另外,我建议在ID之间插入'。即

lstOfIDs += "'"+drow["IdColumnHere"].ToString()+"',";


这应该给你类似“ abc”,“ def”,“任何东西”的东西

10-08 12:07