C# C Web API-如何在流刷新期间处理连接

C# C Web API-如何在流刷新期间处理连接,c#,sql-server,asp.net-web-api,C#,Sql Server,Asp.net Web Api,我有一个跟随类,负责流式处理一个巨大的列表,每次刷新1000条记录 如果用户在连接仍然打开且循环尚未结束时关闭浏览器,会发生什么情况?这条线路能保持畅通吗? 为什么我得到这个异步方法缺少等待操作符 修改代码以使用参数非常简单。继续不使用参数只是一个可怕的习惯。这是相同的代码,但是不管您如何分割它或者用户拥有什么权限,它都是100%安全的,不受sql注入的影响 sqlCmd.CommandText = string.Concat("SELECT * FROM [dbo].[fGetList](@

我有一个跟随类,负责流式处理一个巨大的列表,每次刷新1000条记录

如果用户在连接仍然打开且循环尚未结束时关闭浏览器,会发生什么情况?这条线路能保持畅通吗? 为什么我得到这个异步方法缺少等待操作符


修改代码以使用参数非常简单。继续不使用参数只是一个可怕的习惯。这是相同的代码,但是不管您如何分割它或者用户拥有什么权限,它都是100%安全的,不受sql注入的影响

sqlCmd.CommandText = string.Concat("SELECT * FROM  [dbo].[fGetList](@id)");
sqlCmd.Parameters.Add("@id", SqlDbType.Int).Value = ID;

永远不要建立这样的字符串并执行它。在sql注入造成严重破坏之前,您需要使用参数化查询。您还应该避免使用select*,只选择您需要的列。要了解有关sql注入的更多信息,请检查此项。放松点,这只是一个我没有实际使用的示例*,这是对函数的调用,而不是对表的调用。不管它是函数还是对表的查询,这里的模式都容易受到sql注入的攻击。当然,在本例中它是一个int,但如果其他人使用代码的复制/粘贴作为工作示例,该怎么办?用户定义函数get receive only defined parameters。本例中的id为int。同样,这只是一个示例,它不包含sql函数的真实名称,不包含连接字符串,也不包含身份验证方法。请回答我的问题。如果你不能,请停止提出无关的评论。祝你好运。Sql注入是真实的,并且您的模式很容易受到攻击。这与您使用函数无关。串接字符串是一种可怕的做法,在某种程度上,您很可能会受到sql注入的影响。修复起来很简单,但你不想接受。一个sql注入怎么能修复我的代码?通过任务SendListint id,控制器只允许有一个参数id
sqlCmd.CommandText = string.Concat("SELECT * FROM  [dbo].[fGetList](@id)");
sqlCmd.Parameters.Add("@id", SqlDbType.Int).Value = ID;