本人在做一个对日项目的时候,后台同事写的连接数据库的代码如下:
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
------解决思路----------------------
这封装了和没封装有啥大区别吗
你全都写前台区别也不大