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

时间:2013-06-04 14:35:53

标签: 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是行数。

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

2 个答案:

答案 0 :(得分:0)

执行此操作的最佳方法是在数据库中创建存储过程并使用您的代码将相关信息传递到服务器

答案 1 :(得分:0)

为了完成此任务,您需要创建存储过程或构建实际接受参数的查询。这将帮助您在两者之间传递变量, concatenation 的方法实际上会导致错误或容易受到 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;
           }
     }
}

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

另一个需要注意的重要事项是,您无法使用更新创建子查询;你必须创建一个更新,然后运行一个select作为子查询来磨练更具体的数据,这样你就可以跨表等等。

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

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

如果您可以发布其他信息,我会更乐意为您提供帮助。但我只想发布我认为你想要完成的事情。如果我错了,请纠正我。