閱讀415 返回首頁    go 技術社區[雲棲]


<font color="red">[置頂]</font>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//引入兩個命名空間
using System.Data;
using System.Data.SqlClient;

namespace MyFriends
{
    class DBHelper
    {
        //創建連接字符串
        private const string connStr = @"Data Source=.;Initial Catalog=MySchool;Integrated Security=True";

        /// <summary>
        /// 查詢第一行第一列內容的通用方法(cmd.ExecuteScalar)
        /// </summary>
        /// <param name="sql">查詢用的sql</param>
        /// <returns>第一行第一列內容,object通用類型:null(DB異常)、非null(DB無異常)</returns>
        public object SelectOne(string sql)
        {
            //用來保存查詢結果的第一行第一列內容
            object obj = null;
            //創建連接
            SqlConnection conn = new SqlConnection(connStr);
            //創建cmd對象,用來執行命令
            SqlCommand cmd = new SqlCommand(sql, conn);
            try
            {
                //打開連接
                conn.Open();
                //cmd執行查詢命令,並將第一行第一列內容保存到局部變量obj
                obj = cmd.ExecuteScalar();
            }
            catch (Exception ex)
            {
                //輸出異常
                Console.WriteLine(ex.Message);
            }
            finally
            {
                //關閉連接
                conn.Close();
            }
            //返回局部變量obj
            return obj;
        }

        /// <summary>
        /// 查詢多行多列內容的通用方法(datareader)
        /// </summary>
        /// <param name="sql">查詢用的sql</param>
        /// <returns>datareader對象:null(DB異常)、非null(DB無異常)</returns>
        public SqlDataReader SelectAll(string sql)
        {
            //用來保存查詢結果,保存到dr中
            SqlDataReader dr = null;
            //創建連接
            SqlConnection conn = new SqlConnection(connStr);
            //創建cmd對象,用來執行命令
            SqlCommand cmd = new SqlCommand(sql, conn);
            try
            {
                //打開連接
                conn.Open();
                //cmd執行查詢ExecuteReader命令,返回多行內容並保存到局部變量dr
                //調用該方法的地方,如果關閉datareader,將同時關閉連接
                dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            }
            catch (Exception ex)
            {
                //輸出異常
                Console.WriteLine(ex.Message);
            }
            //返回局部變量dr
            return dr;
        }

        /// <summary>
        /// 增刪改的通用方法(cmd.ExecuteNonQuery)
        /// </summary>
        /// <param name="sql">增刪改用的sql</param>
        /// <returns>受影響的行數:-1(DB異常)、0(增刪改失敗)、>0(增刪改成功)</returns>
        public int Update(string sql)
        {
            //用來保存執行增刪改後受影響的行數
            int result = -1;
            //創建連接
            SqlConnection conn = new SqlConnection(connStr);
            //創建cmd對象,用來執行命令
            SqlCommand cmd = new SqlCommand(sql, conn);
            try
            {
                //打開連接
                conn.Open();
                //cmd執行增刪改命令,並將受影響的行數保存到局部變量result
                result = cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                //輸出異常
                Console.WriteLine(ex.Message);
            }
            finally
            {
                //關閉連接
                conn.Close();
            }
            //返回局部變量result
            return result;
        }

        //--------------------------------------------------------------------------------------

        //用來保存查詢結果,保存到ds中
        DataSet ds = null;
        //通用的數據適配器da
        SqlDataAdapter da = null;

        /// <summary>
        /// 查詢多行多列內容的通用方法(dataset)
        /// </summary>
        /// <param name="sql">查詢用的sql</param>
        /// <param name="tableName">將數據放入ds中的該表</param>
        /// <returns>dataset對象:null(DB異常)、非null(DB無異常)</returns>
        public DataSet DSSelectAll(string sql,string tableName)
        {
             //創建連接
            SqlConnection conn = new SqlConnection(connStr);
            //初始化ds
            ds = new DataSet();
            try
            {
                //創建數據適配器da
                da = new SqlDataAdapter(sql, conn);
                //da填充數據集ds,將數據填充到ds的tableName表中
                da.Fill(ds,tableName);
            }
            catch (Exception ex)
            {
                //輸出異常
                Console.WriteLine(ex.Message);
            }
            //返回局部變量ds
            return ds;
        }

        /// <summary>
        /// 增刪改的通用方法(SqlCommandBuilder)
        /// 注意:sql必須滿足單表+包含主鍵
        /// </summary>
        /// <param name="tableName">將ds中tableName表的數據更新到DB</param>
        /// <returns>受影響的行數:-1(DB異常)、0(增刪改失敗)、>0(增刪改成功)</returns>
        public int DSUpdate(string tableName)
        {
            //用來保存執行增刪改後受影響的行數
            int result = -1;
            try
            {
                //創建SqlCommandBuilder對象,已da作為參數
                SqlCommandBuilder builder = new SqlCommandBuilder(da);
                //將ds中tableName表的數據更新到DB
                result=da.Update(ds, tableName);
            }
            catch (Exception ex)
            {
                //輸出異常
                Console.WriteLine(ex.Message);
            }
            //返回局部變量result
            return result;
        }
    }
}

最後更新:2017-04-03 14:53:53

  上一篇:go poj 1338 Ugly Numbers【終極打表】
  下一篇:go Java IO--字節流與字符流OutputStream/InputStream/Writer/Reader