当前位置: 代码迷 >> C# >> C#如何调用后台的方法来执行select语句
  详细解决方案

C#如何调用后台的方法来执行select语句

热度:41   发布时间:2016-05-05 03:30:16.0
C#怎么调用后台的方法来执行select语句
本人在做一个对日项目的时候,后台同事写的连接数据库的代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data.SqlClient;

namespace CoordinateOutput_2010.Common
{
    class DBAccess
    {
        private static string m_ConnectionString;         //DB接続文字列
        public SqlConnection conn;                       //DBコネクション

        /// <summary>
        /// 初期化処理
        /// </summary>
        /// <param name="strConnec"></param>
        public DBAccess()
        {
            m_ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
        }

        /// <summary>
        /// DBコネクションを取得する
        /// </summary>
        /// <returns>成功:DBコネクション、失敗:null</returns>
        public SqlConnection GetConnection()
        {
            try{
                conn = new SqlConnection(m_ConnectionString);
            }
            catch (Exception ex)
            {
                 // 取得失敗の場合、エラーメッセージを表示する
                 
                 //MessageBox.Show("処理の途中エラーが発生しました。" & vbCrLf & "エラー情報:" & vbCrLf & ex.ToString(), エラー", MessageBoxButtons.OK, MessageBoxIcon.Error);
                 //Return conn;
                return null;
            }
            return conn;
        }

        /// <summary>
        /// DBコネクションを終了する
        /// </summary>
        /// <returns>成功:True、失敗:False</returns>
        public Boolean CloseConnection()
        {
            try
            {
                //DBコネクションを終了する
                conn.Close();
                return true;
            }
            catch (Exception e)
            {
                //処理失敗の場合、エラーメッセージを表示する
                //MessageBox.Show("処理の途中エラーが発生しました。" & vbCrLf & "エラー情報:" & vbCrLf & ex.ToString(), _
                //                "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error)
                return false;
            }
        }

        /// <summary>
        /// データ検索
        /// </summary>
        /// <param name="p_SQL">SQL文</param>
        /// <returns>成功:SqlDataReader、失敗:null</returns>
        public SqlDataReader SelectData(string p_SQL)
        {
            SqlCommand comm = null;
            SqlDataReader sdr = null;
            try
            {
                comm = new SqlCommand(p_SQL, conn);
                conn.Open();
                sdr = comm.ExecuteReader();
                return sdr;
            }
            catch (Exception e)
            {
                return null;
            }
        }
    }
}



请问我在前面怎么调用SelectData方法?
------解决思路----------------------
string sql = "select * from xxx";
var db = new DBAccess();
using(var conn = db.GetConnection())
{
        using(IDataReader dr = db.SelectData(sql))
        {
                while(dr.Read())//if(dr.Read())
                {//your code
                }
        }
}

这Sql帮助类写的烂透了
------解决思路----------------------
够烂+1
居然返回SqlDataReader
------解决思路----------------------
这封装了和没封装有啥大区别吗
你全都写前台区别也不大
  相关解决方案