在 .NET Core 中使用异步的 ADO.NET 的简单示例
2019-07-18 18:12 音乐让我说 阅读(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>
谢谢浏览!
作者:音乐让我说(音乐让我说 - 博客园)
出处:http://music.cnblogs.com/
文章版权归本人所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步