动态SQL性能 - 参数还是字符串连接?

时间:2016-08-21 23:52:56

标签: c# sql sql-server ado.net

在性能方面,在处理动态SQL和ADO.NET连接时,是否优先在输入时传递参数或使用纯文本SQL语句字符串?

之间是否有明显差异
  1. 使用参数

    public void InsertData(DateTime dateFor, string message)
    {
        using (var connection = new SqlConnection(connString))
        {
            connection.Open();
    
            var sql = "INSERT INTO [dbo].[Data] (DateFor, Message) VALUES(@DateFor, @Message);";
            connection.Execute(sql, new { DateFor = dateFor, Message = message });
        }
    }
    
    1. 使用纯文本SQL语句

      public void InsertData(DateTime dateFor, string message)
      {
          using (var connection = new SqlConnection(connString))
          {
              connection.Open();
      
              var sql = string.Format("INSERT INTO [dbo].[Data] (DateFor, Message) VALUES('{0}', '{1}');", dateFor.ToString("yyyy-MM-dd HH:mm:ss"), message);
              connection.Execute(sql);
          }
      }
      
    2. 我是否倾向于使用一种方法而不是另一种方法?

      (我正在使用Dapper作为这个例子,如果有人想知道数据绑定语法)

0 个答案:

没有答案