C# 根据C sql中的行号更新表
我正在使用SQL数据库编写一个小程序。表名为StudentInfo。 我需要知道下面的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是行数 如何获取上述代码的行号?最好的方法是在数据库中创建一个存储过程,并使用您的代码将相关信息传递给服务器为了完成此任务
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;
}
}
}