Rumah pangkalan data tutorial mysql C#ADO.NET帮助类

C#ADO.NET帮助类

Jun 07, 2016 pm 04:02 PM
system using membantu

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using System.Data.SqlClient;namespace DBComm{ static class DBCommand { public class DBParameters { private SqlCommand m_owner = null; publi

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;

namespace DBComm
{
    static class DBCommand
    {
        public class DBParameters
        {
            private SqlCommand m_owner = null;
            public DBParameters(SqlCommand owner)
            {
                m_owner = owner;
            }
            public SqlParameterCollection P()
            {
                return m_owner.Parameters;
            }
        };

        public static bool BulkToDB(string tabname, DataTable dt, params string[] destColumnNames)
        {
            bool bRet = false;
            do
            {
                    if (dt == null)
                        break;
                    if (dt.Rows.Count == 0)
                        break;
                    using (SqlConnection conn = DBConn.GetConn())
                    {
                        if (conn == null)
                            break;

                        SqlBulkCopy bulkcopy = new SqlBulkCopy(conn);
                        if (bulkcopy == null)
                            break;

                        bulkcopy.DestinationTableName = tabname;
                        bulkcopy.BulkCopyTimeout = 30;
                        if (destColumnNames.Length == 0)
                        {
                            foreach (DataColumn col in dt.Columns)
                                bulkcopy.ColumnMappings.Add(col.ColumnName, col.ColumnName);
                        }
                        else
                        {
                            if (destColumnNames.Length == dt.Columns.Count)
                            {
                                for (int i = 0; i < destColumnNames.Length; ++i)
                                {
                                    bulkcopy.ColumnMappings.Add(dt.Columns[i].ColumnName, destColumnNames[i]);
                                }
                            }
                        }
                        bulkcopy.BatchSize = dt.Rows.Count;
                        try
                        {
                            bulkcopy.WriteToServer(dt);
                        }
                        catch (System.Exception e)
                        {
                            string err = e.Message;
                            break;
                        }
                        finally
                        {
                            bulkcopy.Close();
                        }
                    }
                    bRet = true;
            } while (false);
            return bRet;
        }

        public static DBParameters ExecProcNonQuery(string proc_name, object[] paraValues)
        {
            using (SqlConnection conn = DBConn.GetConn())
            {
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = conn;
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.CommandText = proc_name;

                AddInParaValues(cmd, paraValues);
                cmd.ExecuteNonQuery();

                return new DBParameters(cmd);
            }
        }

        public delegate T[] FillValues<T>(SqlDataReader reader);

        public static T[] QuerySomes<T>(string sql, FillValues<T> fill)
        {
            using (SqlConnection conn = DBConn.GetConn())
            {
                T[] result = null;
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = conn;
                cmd.CommandText = sql;


                SqlDataReader reader = null;
                lock (reader = cmd.ExecuteReader())
                {
                    try
                    {
                        result = fill(reader);
                    }
                    catch (Exception e)
                    {
                        throw new Exception(e.StackTrace);
                    }
                    finally
                    {
                        reader.Close();
                    }
                }
                return result;
            }
        }

        public delegate object FillValue(SqlDataReader reader);

        public static object QuerySome(string sql, FillValue fill)
        {
            using (SqlConnection conn = DBConn.GetConn())
            {
                object result = null;
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = conn;
                cmd.CommandText = sql;
                SqlDataReader reader = null;
                lock (reader = cmd.ExecuteReader())
                {
                    try
                    {
                        result = fill(reader);
                    }
                    catch (Exception e)
                    {
                        throw new Exception(e.StackTrace);
                    }
                    finally
                    {
                        reader.Close();
                    }
                }
                return result;
            }
        }

        public static object FillResultValue(SqlDataReader reader)
        {
            object o = null;
            if (reader.Read())
            {
                o = reader.GetValue(0);
            }
            return o;
        }

        public static bool QueryBoolean(string sql)
        {
            return Convert.ToBoolean(QuerySome(sql, new FillValue(FillResultValue)));
        }

        public static byte[] QueryBytes(string sql)
        {
            return (byte[])(QuerySome(sql, new FillValue(FillResultValue)));
        }

        public static int QueryInteger(string sql)
        {
            return Convert.ToInt32(QuerySome(sql, new FillValue(FillResultValue)));
        }


        public static string QueryStr(string sql)
        {
            return QuerySome(sql, new FillValue(FillResultValue)) as string;
        }

        private static string[] FillStrsValue(SqlDataReader reader)
        {
            List<string> lststr = new List<string>();
            while (reader.Read())
            {
                lststr.Add(reader.GetString(0));
            }
            return lststr.ToArray();
        }

        public static string[] QueryStrs(string sql)
        {
            return QuerySomes(sql, new FillValues<string>(FillStrsValue));
        }

        private static bool[] FillBooleansValue(SqlDataReader reader)
        {
            List<bool> lstbool = new List<bool>();
            while (reader.Read())
            {
                lstbool.Add(reader.GetBoolean(0));
            }
            return lstbool.ToArray();
        }

        public static bool[] QueryBooleans(string sql)
        {
            return QuerySomes(sql, new FillValues<bool>(FillBooleansValue));
        }

        public static void ExecCmd(string sql)
        {
            using (SqlConnection conn = DBConn.GetConn())
            {
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = conn;
                cmd.CommandText = sql;
                cmd.ExecuteNonQuery();
            }
        }
        /// <summary>
        /// 获取存储过程的参数列表
        /// </summary>
        /// <param name="proc_Name">存储过程名称</param>
        /// <returns>DataTable</returns>
        private static DataTable GetParameters(SqlConnection conn, string proc_Name)
        {
            SqlCommand comm = new SqlCommand("dbo.sp_sproc_columns", conn);
            comm.CommandType = CommandType.StoredProcedure;
            comm.Parameters.AddWithValue("@procedure_name", (object)proc_Name);
            SqlDataAdapter sda = new SqlDataAdapter(comm);
            DataTable dt = new DataTable();
            sda.Fill(dt);
            return dt;
        }
        /// <summary>
        /// 为 SqlCommand 添加参数及赋值
        /// </summary>
        /// <param name="comm">SqlCommand</param>
        /// <param name="paraValues">参数数组(必须遵循存储过程参数列表的顺序)</param>
        private static void AddInParaValues(SqlCommand comm, params object[] paraValues)
        {
            using (SqlConnection conn = DBConn.GetConn())
            {
                comm.Parameters.Add(new SqlParameter("@RETURN_VALUE", SqlDbType.Int));
                comm.Parameters["@RETURN_VALUE"].Direction = ParameterDirection.ReturnValue;
                if (paraValues != null)
                {
                    DataTable dt = GetParameters(conn, comm.CommandText);
                    int i = 0;
                    foreach (DataRow row in dt.Rows)
                    {
                        string key = row[3].ToString();
                        if (key != "@RETURN_VALUE")
                        {
                            int value = int.Parse(row[4].ToString());
                            if (value == 1)
                            {
                                comm.Parameters.AddWithValue(key, paraValues[i]);
                            }
                            else if (value == 2)//value为2则是输出参数
                            {
                                comm.Parameters.AddWithValue(key, paraValues[i]).Direction = ParameterDirection.Output;
                                //comm.Parameters[key].Direction = ParameterDirection.Output;
                            }
                            comm.Parameters[key].Size = Convert.ToInt32(row[7].ToString());
                            i++;
                        }
                    }
                }
            }
        }
    }
}
Salin selepas log masuk
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;

namespace DBComm
{
    class DBConn
    {
        private static string m_connstr;

        public static string ConnString
        {
            get { return m_connstr; }
            private set { m_connstr = value; }
        }

        static DBConn() 
        {
            SqlConnectionStringBuilder connStr = new SqlConnectionStringBuilder();
            connStr.DataSource = ".";
            connStr.InitialCatalog = "test";
            connStr.IntegratedSecurity = true;

            connStr.Pooling = true; //开启连接池
            connStr.MinPoolSize = 0; //设置最小连接数为0
            connStr.MaxPoolSize = 100; //设置最大连接数为100             
            connStr.ConnectTimeout = 10; //设置超时时间为10秒

            ConnString = connStr.ConnectionString;
            //ConnectDB(ConnString);
        }

        public static SqlConnection GetConn()
        {
            SqlConnection conn = new SqlConnection(ConnString);
            conn.Open();
            return conn;
        }
    }
}
Salin selepas log masuk
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;

namespace DBComm
{
    static class DBTableSource
    {
        public static DataTable GetSource(SqlConnection conn, string strsql)
        {
            DataTable dt = null;
            SqlCommand cmd = null;
            SqlDataAdapter ad = null;
            try
            {
                lock (dt = new DataTable())
                {
                    if (conn is SqlConnection)
                    {
                        cmd = new SqlCommand(strsql, conn);
                        ad = new SqlDataAdapter((SqlCommand)cmd);
                    }

                    dt.Clear();
                    ad.Fill(dt);
                }
            }
            catch (Exception e)
            {
                throw e;
            }
            return dt;
        }

        public static DataTable Source(string strsql)
        {
            using (SqlConnection conn = DBConn.GetConn())
            {
                return GetSource(conn, strsql);
            }
        }
    }
}
Salin selepas log masuk



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)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
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)

Tafsiran dokumentasi Java: Analisis penggunaan kaedah currentTimeMillis() kelas Sistem Tafsiran dokumentasi Java: Analisis penggunaan kaedah currentTimeMillis() kelas Sistem Nov 03, 2023 am 09:30 AM

Tafsiran dokumen Java: Analisis penggunaan kaedah currentTimeMillis() kelas Sistem, contoh kod khusus diperlukan Dalam pengaturcaraan Java, kelas Sistem ialah kelas yang sangat penting, yang merangkumi beberapa sifat dan operasi yang berkaitan dengan sistem. Antaranya, kaedah currentTimeMillis ialah kaedah yang sangat biasa digunakan dalam kelas Sistem Artikel ini akan menerangkan kaedah secara terperinci dan memberikan contoh kod. 1. Gambaran keseluruhan kaedah TimeMillis semasa

Ralat skrin biru Win10: Pengecualian perkhidmatan sistem Ralat skrin biru Win10: Pengecualian perkhidmatan sistem Dec 29, 2023 pm 04:04 PM

Sistem win10 adalah sistem yang sangat mudah digunakan dan sangat pintar Keserasian yang kukuh boleh memastikan bahawa sistem pada asasnya tidak akan menghadapi sebarang masalah semasa penggunaan biasa Walau bagaimanapun, apabila orang terus menggunakan sistem win10, kadangkala sistem itu juga mempunyai masalah. Masalah Win10 boot kod penamatan skrin biru SystemServiceException, hari ini editor akan membawa anda penyelesaian untuk Win10 boot kod penamatan skrin biru SystemServiceException Jika perlu, sila muat turun dengan cepat. Penyelesaian kepada skrin biru win10systemserviceexception: Kaedah 1: 1. Gunakan kekunci Windows + R untuk membuka Run dan masukkan “contr

Apakah sistem komputer? Apakah sistem komputer? Feb 22, 2023 am 10:25 AM

Sistem komputer adalah proses sistem yang agak biasa Anda akan sering melihat sistem apabila melihat proses ini hanya bermaksud sistem komputer, jika proses system.exe muncul pada komputer, ia perlu dipadamkan. ini adalah fail yang dihasilkan oleh virus kuda Trojan Tiada akhiran exe di sebalik sistem sebenar.

muat turun sistem versi bahasa inggeris windows7 muat turun sistem versi bahasa inggeris windows7 Jul 15, 2023 pm 07:45 PM

Saya percaya bahawa netizen sangat mengenali sistem Windows 7 Pernahkah anda mendengar tentang sistem versi Bahasa Inggeris Windows 7 Saya percaya bahawa ramai netizen telah mendengar tentang sistem Windows 7 Bahasa Inggeris sistem versi untuk dimuat turun Hari ini saya akan Editor akan berkongsi pengenalan versi asal win7 dalam bahasa Inggeris dengan semua orang, supaya netizen dapat memahami versi asal win7 dalam bahasa Inggeris. Berikut adalah untuk memberitahu anda tempat untuk memuat turun sistem Windows 7 versi Bahasa Inggeris. Sistem bahasa Inggeris asal win7 telah dikeluarkan kepada MSDN untuk muat turun langganan Versi bersepadu bahasa Inggeris rasmi pertama kali dikeluarkan, Windows7WithSP1, iaitu imej CD Windows7 dengan SP1 bersepadu. Termasuk SP1 kendiri untuk berbilang bahasa

Microsoft mengumumkan ketersediaan umum Pusat Sistem 2022 Microsoft mengumumkan ketersediaan umum Pusat Sistem 2022 Apr 14, 2023 am 09:40 AM

Microsoft telah mengumumkan ketersediaan Pusat Sistem 2022. Versi terkini membawakan Pengurus Operasi Pusat Sistem (SCOM), Pengurus Mesin Maya (VMM), Pengatur Pusat Sistem (SCORCH), Pengurus Perkhidmatan (SM) dan Pengurus Perlindungan Data

Cara menjalankan MacOS 7 dan MacOS 8 dalam penyemak imbas anda hari ini Cara menjalankan MacOS 7 dan MacOS 8 dalam penyemak imbas anda hari ini Apr 18, 2023 am 11:04 AM

Kembali ke masa lalu ke Macintosh tahun 1990-an dan jalankan pemasangan maya lengkap Sistem 7 dan MacOS 8 dalam tetingkap penyemak imbas. Satu kelemahan dengan versi maya baharu perisian Mac 1990-an ialah ia berjalan pada kelajuan Mac 2020-an. Anda sedang melihat MacSE/30 atau Quadra700, tetapi semuanya sepantas Apple Silicon. Anda sebenarnya boleh bekerja dalam sistem pengendalian simulasi ini, malah mereka boleh menyeret dokumen atau fail masuk dan keluar dari macOS Monterey. Tetapi sama ada untuk beberapa tujuan praktikal atau lebih berkemungkinan hanya untuk keseronokan murni, begini caranya

Bagaimana untuk menggunakan kelas Objek dan kelas Sistem di Java? Bagaimana untuk menggunakan kelas Objek dan kelas Sistem di Java? Apr 23, 2023 pm 11:28 PM

Objek ialah kelas asas bagi semua kelas Java, bahagian atas keseluruhan struktur warisan kelas, dan kelas paling abstrak. Semua orang menggunakan toString(), equals(), hashCode(), wait(), notify(), getClass() dan kaedah lain setiap hari Mungkin mereka tidak menyedari bahawa ia adalah kaedah Object, dan mereka tidak melihat apa kaedah lain yang Object ada Dan fikirkan mengapa kaedah ini harus diletakkan dalam Object. 1. Pengenalan kepada kelas JavaObject - kelas super semua kelas Object ialah kelas khas dalam perpustakaan kelas Java dan juga merupakan kelas induk bagi semua kelas. Dalam erti kata lain, Java membenarkan apa-apa jenis objek untuk diberikan kepada jenis Objek

Bagaimana untuk membantu rakan menyerahkan kad dalam kegemilangan raja Bagaimana untuk membantu rakan menyerahkan kad dalam kegemilangan raja Mar 24, 2024 pm 12:31 PM

Dalam Raja Kemuliaan, kita boleh membantu rakan-rakan kita menyerahkan kad untuk mendapatkan embun bunga Jadi bagaimana kita membantu rakan-rakan kita menyerahkan kad? Di bawah, editor akan membawakan anda kaedah untuk membantu rakan anda menyerahkan kad semasa kegemilangan Raja. Bagaimana untuk membantu rakan menyelak kad dalam King of Glory Together 1. Jika anda ingin membantu rakan menyelak kad, anda perlu menjemput rakan anda untuk menyelak kad. 2. Minta rakan anda menjemput anda menyelak kad, dan kemudian anda bersetuju untuk menyelak kad tersebut. 3. Kaedah operasi mengajak rakan menyelak kad adalah sama seperti membantu rakan menyelak kad. 4. Hanya bantu rakan anda membelek kad dan rakan anda perlu melakukannya terlebih dahulu. Cara mengendalikan operasi membalik kad rakan: 1. Mula-mula, buka halaman acara musim bunga, dan klik "Dapatkan Embun Bunga" pada halaman. 2. Pilih rakan untuk berjaya membantu menyelak kad sekali, dan klik "Pergi ke Selesai". 3. Pilih kad yang anda perlukan rakan anda untuk membantu membalikkan, dan kemudian

See all articles