怪物奇妙物语

宇宙无敌超级美少男的怪物奇妙物语

首页 新随笔 联系 管理
  819 随笔 :: 0 文章 :: 2 评论 :: 16万 阅读

DI魅力渐显_依赖注入\Program.cs

services.AddScoped<IDbConnection>(sp => {
string connStr = "Data Source=test.db";
var conn = new SqliteConnection(connStr);
conn.Open();
return conn;
});

DI魅力渐显_依赖注入\UserDAO.cs

private readonly IDbConnection conn;
using var dt = SqlHelper.ExecuteQuery(conn,$"select * from T_Users where UserName={userName}");

DI魅力渐显_依赖注入\SqlHelper.cs

using System.Data;
namespace DI魅力渐显_依赖注入
{
static class SqlHelper
{
public static DataTable ExecuteQuery(this IDbConnection conn, FormattableString formattable)
{
using IDbCommand cmd = CreateCommand(conn, formattable);
DataTable dt = new DataTable();
using var reader = cmd.ExecuteReader();
dt.Load(reader);
return dt;
}
public static object? ExecuteScalar(this IDbConnection conn, FormattableString formattable)
{
using IDbCommand cmd = CreateCommand(conn, formattable);
return cmd.ExecuteScalar();
}
public static int ExecuteNonQuery(this IDbConnection conn, FormattableString formattable)
{
using IDbCommand cmd = CreateCommand(conn, formattable);
int result = cmd.ExecuteNonQuery();
return result;
}
private static IDbCommand CreateCommand(IDbConnection conn, FormattableString formattable)
{
var cmd = conn.CreateCommand();
string sql = formattable.Format;
for (int i = 0; i < formattable.ArgumentCount; i++)
{
sql = sql.Replace("{" + i + "}", "@p" + i);
var parameter = cmd.CreateParameter();
parameter.ParameterName = "@p" + i;
parameter.Value = formattable.GetArgument(i);
cmd.Parameters.Add(parameter);
}
cmd.CommandText = sql;
return cmd;
}
}
}
posted on   超级无敌美少男战士  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
历史上的今天:
2023-02-10 sqlalchemy_fastapi_demo
2023-02-10 sqlalchemy_sqlite_shellhistory
2022-02-10 for循环中使用异步请求的注意
2022-02-10 promise 成功回调 失败回调
2022-02-10 reduce中使用request请求
2022-02-10 常见的数据操作 封装成一个对象处理
2022-02-10 nodejs中的request请求 promise封装
点击右上角即可分享
微信分享提示