using System;
using System.Data.SqlClient;
using System.Data.OleDb;
using System.Configuration;
using System.Data;
namespace ajax研修 //システムによって修正してください。
{
///
/// SQL接続クラス
/// データベースへ接続クラス
///
public class datalink
{
//データベースを接続する
private SqlConnection myConnection;
///
/// データベースを開く
///
public void Open(string strConnection )
{
// Webconfigから,引数をもらう
if (myConnection == null)
{
myConnection = new SqlConnection(ConfigurationSettings.AppSettings[strConnection].ToString());
}
if(myConnection.State == ConnectionState.Closed)
{
try
{
//開く
myConnection.Open();
}
catch
{
}
}
}
///
/// データベースを閉じる
///
public void Close()
{
///接続するかどうか
if(myConnection != null)
{
///開くかどうか
if(myConnection.State == ConnectionState.Open)
{
myConnection.Close();
}
}
}
///
/// 資源を消す
///
private void Dispose()
{
// 閉めることを確認する
if (myConnection != null)
{
myConnection.Dispose();
myConnection = null;
}
}
///
/// 創建一つSqlCommand対象、sql文とストアドを実行するために,SqlTypeについて、1はSQL文、0はストアドを代表です。
///
/// SQL文とストアド名称
/// ストアド引数
/// DB接続
/// SQL文とストアドを区分する
///
private SqlCommand CreateCommand(string sqlText, SqlParameter[] prams,int SqlType,string dbstring)
{
Open(dbstring);
SqlCommand cmd = new SqlCommand(sqlText, myConnection);
switch(SqlType)
{
case 0:
cmd.CommandType = CommandType.StoredProcedure;
break;
case 1:
cmd.CommandType = CommandType.Text;
break;
default:
cmd.CommandType = CommandType.StoredProcedure;
break;
}
///引数をもらう
if (prams != null)
{
foreach (SqlParameter parameter in prams)
{
cmd.Parameters.Add(parameter);
}
}
///創建したSqlCommandの対象を返る
return cmd;
}
///
/// SQLを実行(SELECT)、DataSetの値を返る
///
/// sqlの文
/// DB接続
///
public DataSet RunSql_ds(string sqlText,string dbstring)
{
///
SqlCommand cmdsql = CreateCommand(sqlText,null,1,dbstring);
DataSet ds=new DataSet();
try
{
SqlDataAdapter myda=new SqlDataAdapter(cmdsql);
myda.Fill(ds);
return ds;
}
catch(Exception er)
{
return null;
}
finally
{
///データベースを閉じる
Close();
}
}
///
/// SQLを実行(UPDATE、INSERT、DELETE)、返る値はない時
///
/// SQLの文
/// DB接続
///
public bool RunSql_bool(string sqlText,string dbstring)
{
///
SqlCommand cmdsql = CreateCommand(sqlText,null,1,dbstring);
try
{
///実行する
cmdsql.ExecuteNonQuery();
return true;
}
catch
{
///エラーがある
return false;
}
finally
{
///データベースを閉じる
Close();
}
}
///
/// SQLを実行(SELECTの文)、SqlDataReaderの値を返る
///
/// SQLの文
/// DB接続
///
public SqlDataReader RunSql_dr(string sqlText,string dbstring)
{
SqlCommand cmdsql = CreateCommand(sqlText,null,1,dbstring);
try
{
SqlDataReader dr=cmdsql.ExecuteReader(CommandBehavior.CloseConnection);
return dr;
}
catch
{
return null;
}
finally
{
///データベースを閉じる
Close();
}
}
///
/// SQLを実行(SELECT),return 検索結果の第一行、第一列の値があるかどうか
///
/// SQLの文
/// DB接続
///
public bool RunSql_selectFristRowbool(string sqlText,string dbstring)
{
///
SqlCommand cmdsql = CreateCommand(sqlText,null,1,dbstring);
try
{
if(cmdsql.ExecuteScalar()!=null)
{
return true;
}
else
{
return false;
}
}
catch
{
return false;
}
finally
{
///データベースを閉じる
Close();
}
}
///
/// SQLを実行(SELECT),return 検索結果の第一行、第一列の値
///
/// sqlの文
/// DB接続
///
public object RunSql_selectFristRow(string sqlText,string dbstring)
{
///
SqlCommand cmdsql = CreateCommand(sqlText,null,1,dbstring);
try
{
return (cmdsql.ExecuteScalar());//object
}
catch
{
///エラーのある
return null;
}
finally
{
///データベースを閉じる
Close();
}
}
///
/// ストアドを実行,輸入引数がある
///
/// ストアドの名称
/// ストアドの引数
/// DB接続
///
public bool RunProc_bool(string procName, SqlParameter[] prams,string dbstring)
{
SqlCommand cmd = CreateCommand(procName, prams,0,dbstring);
try
{
cmd.ExecuteNonQuery();
return true;
}
catch(Exception er)
{
return false;
}
finally
{
Close();
}
}
///
/// ストアドを実行,輸入引数がない、輸出引数もない bool
///
/// ストアドの名称
/// DB接続
///
public bool RunProc_bool(string procName,string dbstring)
{
SqlCommand cmd = CreateCommand(procName, null,0,dbstring);
try
{
cmd.ExecuteNonQuery();
return true;
}
catch
{
return false;
}
finally
{
Close();
}
}
///
/// ストアドを実行,輸入引数がない
///
/// ストアドの名称
/// DB接続
///
public DataSet RunProc_ds(string procName,string dbstring)
{
SqlCommand cmd = CreateCommand(procName, null,0,dbstring);
DataSet ds=new DataSet();
try
{
SqlDataAdapter myda=new SqlDataAdapter(cmd);
myda.Fill(ds);
return ds;
}
catch
{
return null;
}
finally
{
///データベースを閉じる
Close();
}
}
///
/// ストアドを実行,輸入引数がある
///
/// ストアド名
/// DB接続定義
/// ストアドの引数
///
public DataSet RunProc_ds(string procName, string dbstring,SqlParameter[] prams)
{
DataSet ds=new DataSet();
SqlCommand cmd = CreateCommand(procName, prams,0,dbstring);
try
{
SqlDataAdapter myda=new SqlDataAdapter(cmd);
myda.Fill(ds);
return ds;
}
catch
{
return null;
}
finally
{
Close();
}
}
///
/// ストアドの引数を創建
///
/// ストアドの名称
/// 引数のtype
/// 引数size
/// 引数の方向
/// 引数値
///
private SqlParameter CreateParam(string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value)
{
SqlParameter param;
if(Size > 0)
{
param = new SqlParameter(ParamName, DbType, Size);
}
else
{
///引数のサイズ=0,引数のサイズを使わない
param = new SqlParameter(ParamName, DbType);
}
///outの引数を創建
param.Direction = Direction;
if (Value != null)
{
param.Value = Value;
}
///返る
return param;
}
///
///SqlParameter入力専用の引数を創建
///
/// ストアドの名称
/// 引数のtype
/// 引数size
/// 引数値
///
public SqlParameter CreateInParam(string ParamName, SqlDbType DbType, int Size, object Value)
{
///
return CreateParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
}
}
}