zoukankan      html  css  js  c++  java
  • C# 连接数据库

                                                                         C# 连接数据 

      一、SQL SERVER

       连接字符串为:Server=IP;Data Source=IP;Initial Catalog=数据库;User Id=sa;Password=密码

          

    string connectStr="Server=IP;Data Source=IP;Initial Catalog=数据库;User Id=sa;Password=密码";
    View Code

       创建连接 SqlConnection(string source)

          

    SqlConnection conn=new SqlConnection(connection);
    View Code

       包装Sql语句 SqlCommand(string sql,SqlConnection conn)

          

    string sql="select * from 表";
    
          SqlCommand cmd=new SqlCommand(sql,conn);
    View Code

        执行查询 ①ExecuteNonQuery()-------返回受影响的行数

            ②ExecuteReader()---------返回IDataReader

            ③ExecuteScalar()---------返回结果集第一行第一列的值

            程序分别如下:

                  

     cmd.ExecuteNonQuery();
    
                   cmd.ExecuteReader();
    
                   cmd.ExecuteScalar();
    View Code

       遍历IDataReader

            

    SqlDataReader reader=cmd.ExecuteReader();
    
            while(reader.Read())
    
            {
    
              reader[0]    //这里相当于一个多维数组
    
            }
    View Code

        关闭数据库Close()  使用数据库应马上关闭

            

    conn.close();
    View Code

       SQLDataAdapter类可以一次取出数据

    OleDbDataAdapter da = new OleDbDataAdapter(sql, conn);//不用SqlCommand 和 三个查询函数
    DataSet ds = new DataSet();
    da.Fill(ds, "table");
    conn.Close();
    return ds.Tables["table"];
    View Code

        完整代码

          

    using System.Data;
    using System.Data.SqlClient;
    
    
    public class ConSql 
    {
        private static string source=null;
        private static SqlConnection conn = null;
        public static  long ECR(string SQL)
        {
            try
            {
                SqlConnection conn = getConnection();
                conn.Open();
                SqlCommand select = new SqlCommand(SQL, conn);
                object Row =select.ExecuteScalar();
                Close();
                if (Row == null)
                {
                    return -1;
                }
                else
                {
                    return (int)Row;
                }
            }
            catch
            {
                return -2;
            }
        }
    
        public static DataTable ERD(string SQL)
        {
            try
            {
                SqlConnection conn = getConnection();
                conn.Open();
                SqlDbDataAdapter da = new SqlDbDataAdapter(sql, conn);
                    DataSet ds = new DataSet();
                    da.Fill(ds, "table");
                    conn.Close();
                    return ds.Tables["table"];
           
            }
            catch
            {
    
                return ;
            }
        }
    
        public static bool ENQ(string SQL)
        {
    
            try
            {
                SqlConnection conn = getConnection();
                conn.Open();
                SqlCommand select = new SqlCommand(SQL, conn);
                select.ExecuteNonQuery();
                Close();
                return true;
            }
            catch
            {
                return false;
            }
        }
    
        protected static SqlConnection getConnection()
        {
            try
            {
                SqlConnection conn = new SqlConnection(source);
                return conn;
            }
            catch
            {
                SqlConnection conn = null;
                return conn;
            }
        }
    
        public static bool SetConnectionStr(string str)
        {
            try
            {
                source = str;
                return true;
            }
            catch
            {
                return false;
            }
        }
        public static bool Close()
        {
            try
            {
                conn.Close();
                return true;
            }
            catch
            {
                return false;
            }
        }
    }
    View Code

        二、MySql

        同sql server 直接上代码

          

    using MySQLDriverCS;
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace hh
    {
        class MySQL
        {
            private MySQLConnection conn = null;
            private MySQLCommand comn = null;
            public  MySQL(string ip, string database, string username, string password)
            {
                conn = new MySQLConnection(new MySQLConnectionString(ip, database, username, password).AsString);
            }
            public DataTable SQL_DataTable(string SQL)
            {
                try
                {
                    conn.Open();
                    setMySQLCommand("set names gd2312");
                    comn.ExecuteNonQuery();
                    MySQLDataAdapter mda = new MySQLDataAdapter(SQL, conn);
                    DataSet ds = new DataSet();
                    mda.Fill(ds, "table");
                    DataTable dt = ds.Tables["table"];
                    conn.Close();
                    return dt;
                }
                catch 
                {
                    return null;
                }
            }
            public long SQL_Number(string SQL)
            {
                try
                {
                    conn.Open();
                    setMySQLCommand("set names gd2312");
                    long num = Convert.ToInt64(comn.ExecuteScalar());
                    return num;
                }
                catch
                {
                    return -1;
                }
            }
            public bool SQL_Cmd(string SQL)
            {
                try
                {
                    conn.Open();
                    setMySQLCommand("set names gd2312");
                    comn.ExecuteReader();
                    return true;
                }
                catch
                {
                    return false;
                }
            }
            public bool setMySQLCommand(string comand)
            {
                comn = new MySQLCommand(comand, conn);
                return true;
            }
    
        }
    }
    View Code

        三、Access

          同SQL 直接上代码

          

    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Data.OleDb;
    using System.Linq;
    using System.Text;
    using System.Configuration;
    
    namespace Data.Access
    {
        class AccessHelper
        {
            #region  private AccessbConnection DataConection()+Access数据库连接
            /// <summary>
            /// Access数据库连接
            /// </summary>
            /// <returns></returns>
            private OleDbConnection AccessConection()
            {
                return new OleDbConnection(ConfigurationManager.ConnectionStrings["strConn"].ToString());
            }
            #endregion
    
            #region public DataTable AccessReader(string sql)+Access数据库查询
            /// <summary>
            /// Access数据库查询
            /// </summary>
            /// <param name="sql"></param>
            /// <returns></returns>
            public DataTable AccessReader(string sql)
            {
                using (OleDbConnection conn = this.AccessConection())
                {
                    conn.Open();
                    OleDbDataAdapter da = new OleDbDataAdapter(sql, conn);
                    DataSet ds = new DataSet();
                    da.Fill(ds, "table");
                    conn.Close();
                    return ds.Tables["table"];
                }
            }
            #endregion
    
            #region public int AccessQuery(string sql)+Access数据库的增、删、改.返回受影响行数
            /// <summary>
            /// Access数据库的增、删、改.返回受影响行数
            /// </summary>
            /// <param name="sql"></param>
            /// <returns></returns>
            public int AccessQuery(string sql)
            {
                using (OleDbConnection conn = this.AccessConection())
                {
                    conn.Open();
                    OleDbCommand oc = new OleDbCommand(sql, conn);
                    int result = oc.ExecuteNonQuery();
                    conn.Close();
                    return result;
                }
            }
            #endregion
    
            #region public object AccessScaler(string sql)+ Access数据库的增、删、改.返回结果集第一行第一列的值
            /// <summary>
            ///  Access数据库的增、删、改.返回结果集第一行第一列的值
            /// </summary>
            /// <param name="sql"></param>
            /// <returns></returns>
            public object AccessScaler(string sql)
            {
                using (OleDbConnection conn = this.AccessConection())
                {
                    conn.Open();
                    OleDbCommand oc = new OleDbCommand(sql, conn);
                    object result = oc.ExecuteScalar();
                    conn.Close();
                    return result;
                }
            }
            #endregion
        }
    }
    View Code

          

        

  • 相关阅读:
    POJ 1611 The Suspects
    POJ 2001 Shortest Prefixes(字典树)
    HDU 1251 统计难题(字典树 裸题 链表做法)
    G++ C++之区别
    PAT 乙级 1013. 数素数 (20)
    PAT 乙级 1012. 数字分类 (20)
    PAT 乙级 1009. 说反话 (20)
    PAT 乙级 1008. 数组元素循环右移问题 (20)
    HDU 6063 17多校3 RXD and math(暴力打表题)
    HDU 6066 17多校3 RXD's date(超水题)
  • 原文地址:https://www.cnblogs.com/liguifa/p/3796545.html
Copyright © 2011-2022 走看看