C# 选择并更新DataTable中的行
我有下面的SQL语句,如果找到行,我想更新数据库表C# 选择并更新DataTable中的行,c#,C#,我有下面的SQL语句,如果找到行,我想更新数据库表 string sql = "Select A.CNum FROM TABLEA A, TABLEB B WHERE A.CID= B.CID AND A.CNum is NULL AND CID=@cID" DataTable dt = querySql(sql, params); if (dt.Rows.Count > 0) {
string sql = "Select A.CNum FROM TABLEA A, TABLEB B WHERE A.CID= B.CID AND A.CNum is NULL AND CID=@cID"
DataTable dt = querySql(sql, params);
if (dt.Rows.Count > 0)
{
// I would like to update CNum from TableA
}
从SQL语句更新行的最佳方法是什么
谢谢。您可以使用EXISTS构造在一个查询中完成此操作
string sql = "IF EXISTS(Select A.CNum FROM TABLEA A, TABLEB B WHERE A.CID= B.CID AND A.CNum is NULL AND CID=@cID) BEGIN ..... END"
您可以在一个查询中使用EXISTS构造来实现这一点
string sql = "IF EXISTS(Select A.CNum FROM TABLEA A, TABLEB B WHERE A.CID= B.CID AND A.CNum is NULL AND CID=@cID) BEGIN ..... END"
应该可以在一条语句中执行此操作,而无需往返数据库中的任何数据:
注意,我在最后一行中限定了CID引用,我认为您将得到一个错误,因为它存在于两个表上,并使用内部联接连接表。请注意,newValueHere可以是A或B中任何列的表达式。应该可以在一条语句中执行此操作,而无需往返数据库中的任何数据:
注意,我在最后一行中限定了CID引用,我认为您将得到一个错误,因为它存在于两个表上,并使用内部联接连接表。请注意,newValueHere可以是A或B中任意列的表达式。使用Tom答案中的SQL和以下C将得到您想要的结果
using(SqlCommand cmd = new SqlCommand(sql, conection))
{
int rowsAffected = cmd.ExecuteNonQuery();
}
使用Tom答案中的SQL和下面的C将得到您想要的
using(SqlCommand cmd = new SqlCommand(sql, conection))
{
int rowsAffected = cmd.ExecuteNonQuery();
}
谢谢你,汤姆。如果表中有一行,我希望通过此方法返回TRUE。我怎么知道桌子上有没有记录?谢谢汤姆。如果表中有一行,我希望通过此方法返回TRUE。我怎么知道桌子上有没有记录?谢谢。我没有使用存储过程。如果行已更新,我是否可以找到其他行?谢谢。我没有使用存储过程。如果行已被更新,我是否仍能找到?