SQL/C# - 执行查询的最佳方法

Ash*_*nko 17 c# sql sql-server-express

我需要从ac#class中执行一个sql查询.我想到了2个选项

  1. 启动sqlcmd的进程.
  2. 使用SqlCommand对象.

我的问题是哪种方式更好?解决方案只能在短时间内与服务器建立连接,这一点非常重要.

如果上述情况不好,我会接受其他想法.

提前致谢.

Jus*_*ner 29

使用SqlCommand.此代码仅在很短的时间内保持连接活动(只要您的查询具有高效性):

DataTable results = new DataTable();

using(SqlConnection conn = new SqlConnection(connString))
    using(SqlCommand command = new SqlCommand(query, conn))
        using (SqlDataAdapter dataAdapter = new SqlDataAdapter(command))
           dataAdapter.Fill(results);
Run Code Online (Sandbox Code Playgroud)


小智 7

来自MSDN:

以下示例创建SqlConnection,SqlCommand和SqlDataReader.该示例读取数据,将其写入控制台.最后,该示例关闭SqlDataReader,然后关闭SqlConnection,因为它退出使用代码块.

private static void ReadOrderData(string connectionString)
{
    string queryString = 
        "SELECT OrderID, CustomerID FROM dbo.Orders;";
    using (SqlConnection connection = new SqlConnection(
               connectionString))
    {
        SqlCommand command = new SqlCommand(
            queryString, connection);
        connection.Open();
        SqlDataReader reader = command.ExecuteReader();
        try
        {
            while (reader.Read())
            {
                Console.WriteLine(String.Format("{0}, {1}",
                    reader[0], reader[1]));
            }
        }
        finally
        {
            // Always call Close when done reading.
            reader.Close();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)