首页 > 解决方案 > C# 使用静态方法并传入数据库读取器

问题描述

我是 C# 新手,听说过很多关于静态方法在多线程环境中的危险性。我有一个静态方法,我在整个应用程序中使用它并接受一个数据读取器对象。在高并发环境中,保持该方法静态或创建一个类并在我使用它时实例化会更好吗?我正在使用.net core 3.1,方法是DBConnection.SafeRowCheck(Reader)

*

  public static class DBConnection
     {
        public static string SafeRowCheck(NpgsqlDataReader Reader)
           {
                if (!Reader.IsDBNull(0))
                {
                    return Reader.GetString(0);
                }
                return "";
        }
    }





    public async Task<string> View()
        {
          try
            {
                var results = string.Empty;
                using var conn = new NpgsqlConnection(_appSettings.ConnectionString);
                await conn.OpenAsync();
                    using var cmd = new NpgsqlCommand("sql statement", conn);
                    await cmd.PrepareAsync();
                    await cmd.ExecuteNonQueryAsync();
                    using var Reader = await cmd.ExecuteReaderAsync();
                    if (await Reader.ReadAsync())
                    {
                        results = DBConnection.SafeRowCheck(Reader);
                    }
                }
       Catch(Exception e)
         {
          // Catch exception
         }
      }

标签: c#asp.net-core.net-corenpgsql

解决方案


推荐阅读