C#ADO.NET帮助类

Jun 07, 2016 pm 04:02 PM
system using 帮助

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++;
                        }
                    }
                }
            }
        }
    }
}
Copier après la connexion
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;
        }
    }
}
Copier après la connexion
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);
            }
        }
    }
}
Copier après la connexion



Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Interprétation de la documentation Java : Analyse de l'utilisation de la méthode currentTimeMillis() de la classe System Interprétation de la documentation Java : Analyse de l'utilisation de la méthode currentTimeMillis() de la classe System Nov 03, 2023 am 09:30 AM

Interprétation du document Java : analyse de l'utilisation de la méthode currentTimeMillis() de la classe System, des exemples de code spécifiques sont requis. En programmation Java, la classe System est une classe très importante, qui encapsule certaines propriétés et opérations liées au système. Parmi elles, la méthode currentTimeMillis est une méthode très couramment utilisée dans la classe System. Cet article expliquera la méthode en détail et fournira des exemples de code. 1. Présentation de la méthode currentTimeMillis

Erreur d'écran bleu Win10 : exception du service système Erreur d'écran bleu Win10 : exception du service système Dec 29, 2023 pm 04:04 PM

Le système Win10 est un système très facile à utiliser et très intelligent. Sa forte compatibilité peut garantir que le système ne rencontrera pratiquement aucun problème lors d'une utilisation normale. Cependant, à mesure que les gens continuent à utiliser le système Win10, le système le fera également parfois. Vous avez des problèmes. Le problème du code de terminaison d'écran bleu de démarrage de Win10 SystemServiceException. Aujourd'hui, je vais vous apporter la solution au code de terminaison d'écran bleu de démarrage de Win10 SystemServiceException. Si vous en avez besoin, veuillez le télécharger rapidement. Solution à l'écran bleu win10systemserviceexception : Méthode 1 : 1. Utilisez la touche Windows + R pour ouvrir Exécuter et entrez « contr

Quel est le système informatique ? Quel est le système informatique ? Feb 22, 2023 am 10:25 AM

Le système informatique est un processus système relativement courant. Vous verrez souvent système lors de la visualisation du processus. Ce processus signifie simplement le système informatique, cependant, si le processus system.exe apparaît sur l'ordinateur, il doit être supprimé à temps. il s'agit d'un fichier généré par un virus cheval de Troie. Il n'y a pas de suffixe exe derrière le système réel.

téléchargement du système version anglaise Windows7 téléchargement du système version anglaise Windows7 Jul 15, 2023 pm 07:45 PM

Je pense que les internautes connaissent très bien le système Windows 7. Avez-vous entendu parler du système Windows 7 en version anglaise ? Je crois que de nombreux internautes ont entendu parler du système Windows 7 en version anglaise. Cependant, certains amis recherchent la version anglaise de Windows 7. système de version à télécharger. Aujourd'hui, l'éditeur va partager l'introduction de la version originale de win7 en anglais avec tout le monde, afin que les internautes puissent comprendre la version originale de win7 en anglais. Ce qui suit est pour vous indiquer où télécharger la version anglaise du système Windows 7. Le système anglais original de win7 a été publié sur MSDN pour téléchargement par abonnement. La version officielle intégrée en anglais a été publiée pour la première fois, Windows7WithSP1, qui est l'image du CD Windows7 avec SP1 intégré. Inclut SP1 autonome pour plusieurs langues

Microsoft annonce la disponibilité générale de System Center 2022 Microsoft annonce la disponibilité générale de System Center 2022 Apr 14, 2023 am 09:40 AM

Microsoft a annoncé la disponibilité de System Center 2022. La dernière version apporte System Center Operations Manager (SCOM), Virtual Machine Manager (VMM), System Center Orchestrator (SCORCH), Service Manager (SM) et Data Protection Manager.

Comment exécuter MacOS 7 et MacOS 8 dans votre navigateur aujourd'hui Comment exécuter MacOS 7 et MacOS 8 dans votre navigateur aujourd'hui Apr 18, 2023 am 11:04 AM

Remontez le temps jusqu'au Macintosh des années 1990 et exécutez des installations virtuelles complètes de System 7 et MacOS 8 dans une fenêtre de navigateur. L’un des défauts des nouvelles versions virtuelles des logiciels Mac des années 1990 est qu’elles fonctionnent à la vitesse d’un Mac des années 2020. Vous regardez un MacSE/30 ou un Quadra700, mais tout est aussi rapide qu'Apple Silicon. Vous pouvez réellement travailler dans ces systèmes d'exploitation simulés, et ils peuvent même faire glisser des documents ou des fichiers vers et hors de macOS Monterey. Mais que ce soit à des fins pratiques ou plus probablement simplement pour le plaisir, voici comment

Comment utiliser la classe Object et la classe System en Java ? Comment utiliser la classe Object et la classe System en Java ? Apr 23, 2023 pm 11:28 PM

Object est la classe de base de toutes les classes Java, le sommet de toute la structure d'héritage de classe et la classe la plus abstraite. Tout le monde utilise toString(), equals(), hashCode(), wait(), notify(), getClass() et d'autres méthodes tous les jours. Peut-être qu'ils ne réalisent pas qu'il s'agit de méthodes d'Object et ne regardent pas non plus quoi. d'autres méthodes dont dispose Object. Et réfléchissez à la raison pour laquelle ces méthodes devraient être placées dans Object. 1. Introduction à la classe JavaObject - la super classe de toutes les classes. Object est une classe spéciale dans la bibliothèque de classes Java et est également la classe parent de toutes les classes. En d’autres termes, Java permet d’attribuer n’importe quel type d’objet au type Objet

Comment aider vos amis à retourner les cartes à la gloire des rois Comment aider vos amis à retourner les cartes à la gloire des rois Mar 24, 2024 pm 12:31 PM

Dans King of Glory, nous pouvons aider nos amis à retourner les cartes pour obtenir de la rosée florale. Alors, comment pouvons-nous aider nos amis à retourner les cartes ? Ci-dessous, l'éditeur vous proposera une méthode pour aider vos amis à retourner les cartes à la gloire du Roi. Comment aider vos amis à retourner les cartes dans King of Glory Together 1. Si vous souhaitez aider vos amis à retourner les cartes, vous devez inviter vos amis à retourner les cartes. 2. Demandez à vos amis de vous inviter à retourner les cartes, puis vous acceptez de retourner les cartes. 3. La méthode opérationnelle pour inviter des amis à retourner des cartes est la même que celle pour aider des amis à retourner des cartes. 4. Aidez simplement votre ami à retourner les cartes et votre ami doit opérer en premier. Comment faire fonctionner l'opération de retournement de carte d'un ami : 1. Tout d'abord, ouvrez la page de l'événement de la saison des fleurs et cliquez sur « Obtenir Flower Dew » sur la page. 2. Sélectionnez un ami pour vous aider à retourner les cartes une fois, puis cliquez sur « Aller à Terminer ». 3. Sélectionnez les cartes que vos amis doivent vous aider à retourner, puis

See all articles