C# 根据C sql中的行号更新表

C# 根据C sql中的行号更新表,c#,sql,sql-update,C#,Sql,Sql Update,我正在使用SQL数据库编写一个小程序。表名为StudentInfo。 我需要知道下面的SQL代码 for (n=0; n<nRows; n++) { string sql1="update StudentInfo set Position=" + n + " where <this has to be the row number>"; } nRows是行数 如何获取上述代码的行号?最好的方法是在数据库中创建一个存储过程,并使用您的代码将相关信息传递给服务器为了完成此任务

我正在使用SQL数据库编写一个小程序。表名为StudentInfo。 我需要知道下面的SQL代码

for (n=0; n<nRows; n++) {
  string sql1="update StudentInfo set Position=" + n + " where <this has to be the row number>";
}
nRows是行数


如何获取上述代码的行号?

最好的方法是在数据库中创建一个存储过程,并使用您的代码将相关信息传递给服务器

为了完成此任务,您需要创建一个存储过程或生成一个实际接受参数的查询。这将帮助您在变量之间传递变量,您的连接方法实际上会导致错误或容易受到SQL注入攻击

非参数SQL命令:

该方法实质上是创建一个连接,运行我们的SQL命令,然后我们使用一个整数来验证它是否确实成功运行了我们的命令。如您所见,我们只是使用SQL来运行命令

另一个需要注意的重要事项是,不能创建带有更新的子查询;您必须创建一个更新,然后运行一个select作为子查询,以便跨多个表磨练更具体的数据,等等

另一种选择是使用基于参数的查询,在SQL和应用程序之间传递变量

我不会在这里发布代码,因为我相信您编写C循环是为了演示希望SQL为您做什么。只更新特定行;基于特定的标准


如果你能发布更多信息,我将非常乐意帮助你。但我只是想把我相信你们正在努力完成的事情贴出来。如果我错了,请纠正我。

-您不应该将SQL语句连接在一起-使用参数化查询来避免SQL注入如果没有某种记录标识符或键或应用排序,您无法指望数据库以任何一致的方式维护行顺序。谢谢,巴迪。。。这就是你想要完成的事情?是的,它是成功的。谢谢您:
using(SqlConnection sqlConnection = new SqlConnection("Database Connection String Here"))
{
     string command =
           "UPDATE Production.Product " +
           "SET ListPrice = ListPrice * 2 " +
           "WHERE ProductID IN " +
               "(SELECT ProductID  " +
                "FROM Purchasing.ProductVendor" +
                "WHERE BusinessEntityID = 1540);" +

     using (SqlCommand sqlCommand = new SqlCommand(command, sqlConnection))
     {
           int execute = command.ExecuteNonQuery();
           if( execute <= 0)
           {
               return false;
           }
           else
           {
               return true;
           }
     }
}