DBhelper

Jun 07, 2016 pm 05:42 PM

1 using System; 2 using System.Configuration; 3 using System.Collections.Generic; 4 using System.Data; 5 using System.Data.Common; 6 using System. Text ; 7 8 public static class Db 9 { ; 11 public static DbProviderFactory Factory = DbProvi

1 using System; 2 using System.Configuration; 3 using System.Collections.Generic; 4 using System.Data; 5 using System.Data.Common; 6 using System.Text; 7   8 public static class Db 9 { ; 11     public static DbProviderFactory Factory = DbProviderFactories.GetFactory(ConnectionString.ProviderName); 12   13     public static DbConnection CreateConnection() 14     { 15         DbConnection con = Factory.CreateConnection(); 16         con.ConnectionString = ConnectionString.ConnectionString; 17         return con; 18     } 19   20     #region 参数 21   22     public static DbParameter CreateParameter(DbParameter param) 23     { 24         return CreateParameter(param.ParameterName, param.Value, param.DbType, param.Size, param.Direction, param.SourceColumn, param.SourceColumnNullMapping, param.SourceVersion); 25     } 26   , ParameterDirection? Direction , bool? SourceColumnNullMapping ) 28     { 29         DbParameter param = Factory.CreateParameter(); 30   31         param.ParameterName = ParameterName; 32         param.Value = Value; 33   34         if (DbType != null) 35             param.DbType = DbType.Value; 36         if (Size != null) 37             param.Size = Size.Value; 38         if (Direction != null) 39             param.Direction = Direction.Value; 40         if (SourceColumn != null) 41             param.SourceColumn = SourceColumn; 42         if (SourceColumnNullMapping != null) 43             param.SourceColumnNullMapping = SourceColumnNullMapping.Value; 44         if (SourceVersion != null) 45             param.SourceVersion = SourceVersion.Value; 46   47         return param; 48     } 49   50     private static DbParameter[] ConvertParameters(object[] parameters) 51     { 52         ListDbParameter> paramList = new ListDbParameter>(); 53   54         for (int i = 0; i parameters.Length; i++) 55         { DbParameterCollection) DbParameterCollection) paramList.Add(CreateParameter(item)); DbParameter) DbParameter); )); 62         } 63   64         return paramList.ToArray(); 65     } 66   67     #endregion 68   69     public static Query Query(string query, params object[] parameters) 70     { 71         return new Query(query, ConvertParameters(parameters)); 72     } 73   74     public static bool Insert(string table, object model) 75     { 76         StringBuilder fields = new StringBuilder(); 77         StringBuilder values = new StringBuilder(); 78         ListDbParameter> paramList = new ListDbParameter>(); 79   80         foreach (var item in model.GetType().GetProperties()) 81         { ,", item.Name); 83             values.AppendFormat("@{0},", item.Name); 84             paramList.Add(CreateParameter("@" + item.Name, item.GetValue(model, null))); 85         } 86   ({), )), paramList.ToArray()).Execute() > 0; 88     } 89   90     public static bool Update(string table, object model, string where, params object[] parameters) 91     { 92         StringBuilder fieldsAndValues = new StringBuilder(); 93         ListDbParameter> paramList = new ListDbParameter>(); 94   95         foreach (var item in model.GetType().GetProperties()) 96         { @{0},", item.Name); 98             paramList.Add(CreateParameter("@" + item.Name, item.GetValue(model, null))); 99         } 100   101         paramList.AddRange(ConvertParameters(parameters)); 102   {) ; 104     } 105 } 106   107 public class Query 108 { 109     #region 构造方法 110   111     public Query(string query, DbParameter[] parameters) 112     { 113         SqlQuery = query; 114         Parameters = parameters; 115     } 116   117     public Query(string query, DbParameter[] parameters, bool isException) 118         : this(query, parameters) 119     { 120         IsException = isException; 121     } 122   123     #endregion 124   125     #region 属性/字段 126   127     private bool IsException { get; set; } 128     public string SqlQuery { get; set; } 129     public DbParameter[] Parameters { get; set; } 130   131     #endregion 132   133     #region 执行基础 134   135     private T ExecuteCommonT>(FuncDbCommand, T> function) 136     { 137         using (DbConnection con = Db.CreateConnection()) 138         using (DbCommand cmd = con.CreateCommand()) 139         { 140             cmd.CommandText = SqlQuery; 141             cmd.Parameters.AddRange(Parameters); 142             con.Open(); 143             T result = function(cmd); 144             cmd.Parameters.Clear(); 145             return result; 146         } 147     } 148   , T exValue = default(T)) 150     { 151         if (IsException) 152             return ExecuteCommonT>(function); 153   154         try 155         { 156             return ExecuteCommonT>(function); 157         } 158         catch (Exception e) 159         { 160             Console.WriteLine(e.ToString()); 161             return exValue; 162         } 163     } 164   165     public void Execute(ActionDbCommand> action) 166     { 167         Execute(cmd => { action(cmd); return 0; }); 168     } 169   170     #endregion 171   172     #region 执行查询 173   () 175     { 176         return Execute(cmd => cmd.ExecuteNonQuery()); 177     } 178   179     public object Scalar() 180     { 181         return Execute(cmd => cmd.ExecuteScalar()); 182     } 183   184     public T ScalarT>() 185     { 186         return Execute(cmd => (T)cmd.ExecuteScalar()); 187     } 188   189     public Query Top(int count) 190     { ({1}) as t0", count, SqlQuery), Parameters); 192     } 193   194     public Single ToSingle() 195     {         { 198             Single s = new Single(); 199   200             using (var dr = cmd.ExecuteReader()) 201             { 202                 if (dr.Read()) 203                 { 204                     string name = string.Empty; 205   206                     for (int i = 0; i dr.FieldCount; i++) 207                     { 208                         name = dr.GetName(i); dr; 210                     } 211                 } 212                 else 213                 { 214                     throw new Exception("Not Find !!"); 215                 } 216             } 217   218             return s; 219         }); 220   221     } 222   223     public DataTable ToDataTable() 224     {         { 227             DbDataAdapter da = Db.Factory.CreateDataAdapter(); 228             da.SelectCommand = cmd; 229             DataTable dt = new DataTable(); 230             da.Fill(dt); 231             return dt; 232         }); 233     } 234   235     public ListT> ToListT>() 236     {         { 239             ListT> list = new ListT>(); 240   241             using (var dr = cmd.ExecuteReader()) 242             { 243                 while (dr.Read()) 244                 { 245                     Type t = typeof(T); 246                     T s = default(T); 247                     string name = string.Empty; 248   249                     for (int i = 0; i dr.FieldCount; i++) 250                     { 251                         name = dr.GetName(i); 252                         var pro = t.GetProperty(name); 253   254                         if (pro != null) , null); 256                     } 257   258                     list.Add(s); 259                 } 260             } 261   262             return list; 263         }, new ListT>()); 264     } 265   266     public override string ToString() 267     { 268         return Scalarstring>(); 269     } 270   271     #endregion 272   273     #region 分页 274   275     private Query RecordCountQuery 276     { 277         get { return Db.Query(string.Format("select count(*) from ({0}) as t0", SqlQuery), Parameters); } 278     } 279   280     private Query PagerResultQuery(string primaryKey, int pageIndex, int pageSize) 281     { ({? " {2} t1.{3} from ({0}) as t1)" : ""), 284             SqlQuery, pageSize, pageIndex * pageSize, primaryKey), Parameters); 285     } 286   recordCount) 288     { ()); 290         return PagerResultQuery(primaryKey, pageIndex, pageSize).ToDataTable(); 291     } 292   recordCount) 294     { 295         return ToPager("Id", pageIndex, pageSize, recordCount); 296     } 297   recordCount) 299     { ()); 301         return PagerResultQuery(primaryKey, pageIndex, pageSize).ToListT>(); 302     } 303   recordCount) 305     { 306         return ToPagerT>("Id", pageIndex, pageSize, recordCount); 307     } 308   309     #endregion 310 } 311   {     { ; } 317         set { Add(name.ToLower(), value); } 318     } 319 } ,网站空间,美国服务器,虚拟主机

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Kurangkan penggunaan memori MySQL di Docker Kurangkan penggunaan memori MySQL di Docker Mar 04, 2025 pm 03:52 PM

Artikel ini meneroka mengoptimumkan penggunaan memori MySQL di Docker. Ia membincangkan teknik pemantauan (statistik Docker, skema prestasi, alat luaran) dan strategi konfigurasi. Ini termasuk had memori docker, swapping, dan cgroups, bersama -sama

Cara menyelesaikan masalah MySQL tidak dapat membuka perpustakaan bersama Cara menyelesaikan masalah MySQL tidak dapat membuka perpustakaan bersama Mar 04, 2025 pm 04:01 PM

Artikel ini menangani ralat "tidak dapat membuka perpustakaan kongsi" MySQL. Isu ini berpunca daripada ketidakupayaan MySQL untuk mencari perpustakaan bersama yang diperlukan (.so/.dll fail). Penyelesaian melibatkan mengesahkan pemasangan perpustakaan melalui pakej sistem m

Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table? Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table? Mar 19, 2025 pm 03:51 PM

Artikel ini membincangkan menggunakan pernyataan jadual Alter MySQL untuk mengubah suai jadual, termasuk menambah/menjatuhkan lajur, menamakan semula jadual/lajur, dan menukar jenis data lajur.

Jalankan MySQL di Linux (dengan/tanpa bekas podman dengan phpmyadmin) Jalankan MySQL di Linux (dengan/tanpa bekas podman dengan phpmyadmin) Mar 04, 2025 pm 03:54 PM

Artikel ini membandingkan memasang MySQL pada Linux secara langsung berbanding menggunakan bekas podman, dengan/tanpa phpmyadmin. Ia memperincikan langkah pemasangan untuk setiap kaedah, menekankan kelebihan Podman secara berasingan, mudah alih, dan kebolehulangan, tetapi juga

Apa itu SQLite? Gambaran Keseluruhan Komprehensif Apa itu SQLite? Gambaran Keseluruhan Komprehensif Mar 04, 2025 pm 03:55 PM

Artikel ini memberikan gambaran menyeluruh tentang SQLite, pangkalan data relasi tanpa server tanpa mandiri. Ia memperincikan kelebihan SQLITE (kesederhanaan, mudah alih, kemudahan penggunaan) dan kekurangan (batasan konkurensi, cabaran skalabiliti). C

Menjalankan Pelbagai Versi MySQL di MacOS: Panduan Langkah demi Langkah Menjalankan Pelbagai Versi MySQL di MacOS: Panduan Langkah demi Langkah Mar 04, 2025 pm 03:49 PM

Panduan ini menunjukkan pemasangan dan menguruskan pelbagai versi MySQL pada macOS menggunakan homebrew. Ia menekankan menggunakan homebrew untuk mengasingkan pemasangan, mencegah konflik. Pemasangan Butiran Artikel, Permulaan/Perhentian Perkhidmatan, dan PRA Terbaik

Bagaimana saya mengkonfigurasi penyulitan SSL/TLS untuk sambungan MySQL? Bagaimana saya mengkonfigurasi penyulitan SSL/TLS untuk sambungan MySQL? Mar 18, 2025 pm 12:01 PM

Artikel membincangkan mengkonfigurasi penyulitan SSL/TLS untuk MySQL, termasuk penjanaan sijil dan pengesahan. Isu utama menggunakan implikasi keselamatan sijil yang ditandatangani sendiri. [Kira-kira aksara: 159]

Apakah beberapa alat GUI MySQL yang popular (mis., MySQL Workbench, phpmyadmin)? Apakah beberapa alat GUI MySQL yang popular (mis., MySQL Workbench, phpmyadmin)? Mar 21, 2025 pm 06:28 PM

Artikel membincangkan alat MySQL GUI yang popular seperti MySQL Workbench dan PHPMyAdmin, membandingkan ciri dan kesesuaian mereka untuk pemula dan pengguna maju. [159 aksara]

See all articles