C# 在SQL查询中传入{}意味着什么?

C# 在SQL查询中传入{}意味着什么?,c#,sql,C#,Sql,有人能解释这里发生了什么吗 据我所知,我正在更新一个名为shops的表,其中shops的第一个id等于1?我说得对吗,有人能给我更详细的解释吗?shopId和shopId有何不同 SqlCommand cmd = new SqlCommand(String.Format("UPDATE shops SET NumberOfWindows = {0} WHERE shopId ='{1}'", ShopDataCount, SHOPID), Connection) 这和查询本

有人能解释这里发生了什么吗

据我所知,我正在更新一个名为shops的表,其中shops的第一个id等于1?我说得对吗,有人能给我更详细的解释吗?shopId和shopId有何不同

SqlCommand cmd = new SqlCommand(String.Format("UPDATE shops SET NumberOfWindows = {0} WHERE shopId ='{1}'", ShopDataCount, SHOPID), Connection)

这和查询本身无关,在将其传递给数据库引擎之前,它将被String.Format替换。它是一个令牌,告诉String.Format操作将变量放在何处。 它在此位置插入SHOPID的值。 顺便说一句,这不是一种编写查询的好方法,因为它容易受到SQL注入的攻击。 首选方法是参数化查询,例如,请参见:

这些是字符串的参数。格式-{0}将替换为ShopDataCount中的值,{1}将替换为SHOPID中的值。这也是一种非常糟糕的sql语句生成方法。它应该使用参数化查询。谢谢@Nikki9696。你能纠正一下,做一个更好的查询吗?@HansKesting omg lol我怎么会不知道这个网站是一个东西……bobby tables=请使用参数化查询-通过连接等方式构建SQL查询。这是一个灾难。它不仅是许多难以调试的语法错误的来源,也是一个广泛的、开放的门户。关于这篇文章唯一的一点是,它说AddWithValue是最简单的方法。也许最简单。好的不。好吧,你可以添加一个值,只是不要使用AddWithValue来做