代码改变世界

在 .NET Core 中使用异步的 ADO.NET 的简单示例

  音乐让我说  阅读(1112)  评论(0编辑  收藏  举报

直接贴代码:

Program.cs

复制代码
using Microsoft.Extensions.Configuration;
using System;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Threading.Tasks;

namespace AsyncAdoNetSamples
{
    class Program
    {
        static async Task Main()
        {
            await ReadAsync("Hello");
        }

        public static async Task ReadAsync(string title)
        {
            var connection = new SqlConnection(GetConnectionString());

            string sql = "SELECT [Title], [Publisher], [ReleaseDate] FROM [ProCSharp].[Books] WHERE lower([Title]) LIKE @Title ORDER BY [ReleaseDate]";

            var command = new SqlCommand(sql, connection);
            var titleParameter = new SqlParameter("Title", SqlDbType.NVarChar, 50);
            titleParameter.Value = title;
            command.Parameters.Add(titleParameter);

            await connection.OpenAsync();

            using (SqlDataReader reader = await command.ExecuteReaderAsync(CommandBehavior.CloseConnection))
            {
                while (await reader.ReadAsync())
                {
                    int id = reader.GetInt32(0);
                    string bookTitle = reader.GetString(1);
                    string publisher = reader[2].ToString();
                    DateTime? releaseDate = reader.IsDBNull(3) ? (DateTime?)null : reader.GetDateTime(3);
                    Console.WriteLine($"{id,5}. {bookTitle,-40} {publisher,-15} {releaseDate:d}");
                }
            }
        }

        public static string GetConnectionString()
        {
            var configurationBuilder = new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile("config.json");

            IConfiguration config = configurationBuilder.Build();
            return config["Data:DefaultConnection:ConnectionString"];
        }
    }
}
复制代码

 

config.json

{
    "Data": {
        "DefaultConnection": {
            "ConnectionString": "Server=(localdb)\\MSSQLLocalDB;Database=Books;Trusted_Connection=True;"
        }
    }
}

 

.csproj

  <ItemGroup>
    <PackageReference Include="Microsoft.Extensions.Configuration" Version="2.1.1" />
    <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.1.1" />
    <PackageReference Include="System.Data.SqlClient" Version="4.5.1" />
  </ItemGroup>

 

 

 

谢谢浏览!

点击右上角即可分享
微信分享提示