請問:
1.需要那些私有變量?
2.需要那些屬性?
3.是否需要靜態屬性或者靜態私有變量?
4.SqlConnection是否設計為單態?
5.SqlCommand如果只建立一次如何實現不同的數據操作
{
SqlCommand.text=
}?
6.SqlParameter如何設計?
7.DataSet設為靜態是否會出現問題?Public static DataSet GetDatSet(para[])多謝指教!最好有例子.聯繫:[email protected] (最佳聯繫方式)
1.需要那些私有變量?
2.需要那些屬性?
3.是否需要靜態屬性或者靜態私有變量?
4.SqlConnection是否設計為單態?
5.SqlCommand如果只建立一次如何實現不同的數據操作
{
SqlCommand.text=
}?
6.SqlParameter如何設計?
7.DataSet設為靜態是否會出現問題?Public static DataSet GetDatSet(para[])多謝指教!最好有例子.聯繫:[email protected] (最佳聯繫方式)
7.DataSet設為靜態是否會出現問題?Public static DataSet GetDatSet(para[])
这个不是ds是静态的,是方法是静态的!,当然没有关系啊
如果每個方法都被調用過,有那些對象是只建立一次,或者說被設置為私有變量.單態是必須的嗎?順便問一下,數據庫訪問工廠模式並不實用,對嗎?
//静态变量
#region 私有变量
//private static readonly string _connectionString=ConfigurationSettings.AppSettings["ConnectionString"];
private static string _connectionString="";
private static SqlConnection _objectConnection;
private static SqlCommand _objectCommand;
private static SqlDataAdapter _objectAdapter;
#endregion //系统的构造函数
#region 构造函数
public SqlServerDB()
{
//
// TODO: コンストラクタ ロジックをここに追加してください。
//
}
#endregion //公有属性
#region 公有属性 ConnectionString CurrentConnctState
public static string ConnectionString
{
get
{
return _connectionString;
}
set
{
_connectionString=value;
}
}
public static string CurrentConnctState
{
get
{
return _objectConnection.State.ToString();
}
}
/*
public static SqlConnection ObjectConnection
{
get
{
return _objectConnection;
}
}
*/
#endregion //实例化类
#region 实例化方法 public static void Instance
public static void Instance()
{
if(_objectConnection==null)
{
_objectConnection=new SqlConnection(_connectionString);
}
if(_objectCommand==null)
{
_objectCommand=new SqlCommand();
_objectCommand.Connection=_objectConnection;
}
if(_objectAdapter==null)
{
_objectAdapter=new SqlDataAdapter();
}
}
#endregion
#region 产生数据库存储过程参数 public static SqlParameter CreateParameter
/// <summary>
/// 产生数据库存储过程参数
/// </summary>
/// <param name="para">存储过程中的参数名称</param>
/// <param name="paraValue">参数的值</param>
/// <param name="paramterType">参数的类型</param>
/// <param name="parameterDirection">参数的传递方向</param>
/// <param name="length">参数的长度</param>
/// <returns>存储过程参数</returns>
public static SqlParameter CreateParameter(string para,string paraValue,System.Data.SqlDbType paramterType,System.Data.ParameterDirection parameterDirection,int length)
{
SqlParameter objParameter=new SqlParameter(para,paramterType,length);
objParameter.Direction=parameterDirection;
objParameter.Value=paraValue;
return objParameter;
}
#endregion
//
#region 产生DateTime类型数据库存储过程参数 public static SqlParameter CreateDateTimeParameter
/// <summary>
/// DateTime类型数据库存储过程参数
/// </summary>
/// <param name="para">存储过程中的参数名称</param>
/// <param name="paraValue">参数的类型</param>
/// <returns>DateTime类型存储过程参数</returns>
public static SqlParameter CreateDateTimeParameter(string para,string paraValue)
{
SqlParameter objParameter=new SqlParameter(para,System.Data.SqlDbType.DateTime,8);
objParameter.Direction=ParameterDirection.Input;
objParameter.Value=paraValue;
return objParameter;
}
#endregion
//
#region 产生Int类型存储过程参数 public static SqlParameter CreateIntParameter
/// <summary>
/// Int类型数据库存储过程参数
/// </summary>
/// <param name="para">存储过程中的参数名称</param>
/// <param name="paraValue">参数的类型</param>
/// <returns>Int类型存储过程参数</returns>
public static SqlParameter CreateIntParameter(string para,string paraValue)
{
SqlParameter objParameter=new SqlParameter(para,System.Data.SqlDbType.Int,4);
objParameter.Direction=ParameterDirection.Input;
objParameter.Value=paraValue;
return objParameter;
}
#endregion
//
#region 产生Nvarchar类型存储过程参数 public static SqlParameter CreateNvarcharParameter
/// <summary>
/// Nvarchar类型数据库存储过程参数
/// </summary>
/// <param name="para">存储过程中的参数名称</param>
/// <param name="paraValue">参数的类型</param>
/// <returns>Nvarchar类型存储过程参数</returns>
public static SqlParameter CreateNvarcharParameter(string para,string paraValue)
{
SqlParameter objParameter=new SqlParameter(para,System.Data.SqlDbType.NVarChar,50);
objParameter.Direction=ParameterDirection.Input;
objParameter.Value=paraValue;
return objParameter;
}
#endregion
#region 打开数据库连接 public static void Open
public static void Open()
{
if(_objectConnection.State==ConnectionState.Closed)
{
try
{
_objectConnection.Open();
}
catch(Exception ex)
{
throw new Exception(ex.Message);
}
}
}
#endregion
//
#region 关闭数据库连接 public static void Close
public static void Close()
{
if(_objectConnection.State==ConnectionState.Open)
{
try
{
_objectConnection.Close();
}
catch(Exception ex)
{
throw new Exception(ex.Message);
}
}
}
#endregion //设置SqlCommand
#region 设置 SqlCommand public static void SetCommand (string strSql)
public static void SetCommand(string strSql)
{
_objectCommand.CommandText=strSql;
}
#endregion
//
#region 设置 SqlCommand public static void SetCommand (string,SqlParameter[])
public static void SetCommand(string procedure,SqlParameter[] paraArray)
{
_objectCommand.CommandType=CommandType.StoredProcedure;
foreach(SqlParameter para in paraArray)
{
_objectCommand.Parameters.Add(para);
}
}
#endregion
//
#region 设置 SqlCommand public static void SetCommand (string,SqlParameter)
public static void SetCommand(string procedure,SqlParameter para)
{
_objectCommand.CommandText=procedure;
_objectCommand.CommandType=CommandType.StoredProcedure;
_objectCommand.Parameters.Add(para);
}
#endregion
//
#region 设置 SqlCommand public static void SetCommand (SqlCommand objCommand)
public static void SetCommand(SqlCommand objCommand)
{
_objectCommand=objCommand;
_objectCommand.Connection=_objectConnection;
}
#endregion
你可以看一下SQLHelper,虽然代码轮七八糟比较垃圾,
但至少没有什么错误~
static SqlCommand objcmd=new SqlCommand(SQL, conn);
objcmd=null;CLR是否回收這個對象?
這個設計的合格嗎?