有什么理由只将string.Format()与一个字符串参数一起使用吗?

时间:2019-05-31 13:25:35

标签: c# sql .net

我目前正在工作中更新一些旧代码。我遇到了很多行,其中似乎毫无理由地使用了string.Format()。我想知道是否可以在不使用附加参数的情况下使用string.Format(),但我想不出任何用处。

这有什么区别?

string query = String.Format(@"select type_cd, type_shpmt from codes");

这:

string query = "select type_cd, type_shpmt from codes";

我也不认为@是必需的,因为它不必是字符串文字,并且它不是多行字符串。

2 个答案:

答案 0 :(得分:10)

剪切和粘贴失败。有人没有花时间清理代码。没有理由使用ws.connected。只需将其删除并直接分配即可。


⚠️警告⚠️

如果此人正在使用string.Format来组合参数,请保持警惕;应该使用SQLCommandSQLParameter类来避免SQL注入。

答案 1 :(得分:4)

应{em}删除Format,保留@,并使查询更易读 :

  string query = 
     @"select type_cd, 
              type_shpmt 
         from codes";

如果要修改表,字段名称等(您不能通过 Sql参数来完成),请尝试使用字符串插值

  string myTableName = "codes";

  ...

  string query = 
     $@"select type_cd, 
               type_shpmt 
          from {myTableName}";