最近写一个项目,我开发的方式首先设计数据库,然后用网上免费的代码生成软件CodePlus V2.0生成mode对象,同时封装操作方法,在与数据库操作方面我封装了一个数据操作类,很方便,贡献出来。
![](/assets/blank.gif)
![](/assets/blank.gif)
Code
![](/assets/blank.gif)
public static class SqlPlus
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
// Hashtable to store cached parameters
![](/assets/blank.gif)
private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable());
![](/assets/blank.gif)
public static string connectionString = "Data Source=spsserver;Initial Catalog=Cooec;uid=sa;pwd=ssssaaaa";
![](/assets/blank.gif)
public static SqlTransaction GetTransaction()
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
using (SqlConnection connection = new SqlConnection(SqlPlus.connectionString))
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
connection.Open();
![](/assets/blank.gif)
SqlTransaction trans = connection.BeginTransaction();
![](/assets/blank.gif)
return trans;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public static void ConnClose(SqlConnection connection)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
if (connection.State == ConnectionState.Open)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
connection.Close();
![](/assets/blank.gif)
}
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public static int ExecuteNonQuery(CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
SqlCommand cmd = new SqlCommand();
![](/assets/blank.gif)
using (SqlConnection conn = new SqlConnection(SqlPlus.connectionString))
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
![](/assets/blank.gif)
int val = cmd.ExecuteNonQuery();
![](/assets/blank.gif)
cmd.Parameters.Clear();
![](/assets/blank.gif)
return val;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public static int ExecuteNonQuery(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
SqlCommand cmd = new SqlCommand();
![](/assets/blank.gif)
PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
![](/assets/blank.gif)
int val = cmd.ExecuteNonQuery();
![](/assets/blank.gif)
cmd.Parameters.Clear();
![](/assets/blank.gif)
return val;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public static int ExecuteNonQuery(SqlTransaction trans, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
SqlCommand cmd = new SqlCommand();
![](/assets/blank.gif)
PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters);
![](/assets/blank.gif)
int val = cmd.ExecuteNonQuery();
![](/assets/blank.gif)
cmd.Parameters.Clear();
![](/assets/blank.gif)
return val;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public static SqlDataReader ExecuteReader(CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
SqlCommand cmd = new SqlCommand();
![](/assets/blank.gif)
SqlConnection conn = new SqlConnection(SqlPlus.connectionString);
![](/assets/blank.gif)
// we use a try/catch here because if the method throws an exception we want to
![](/assets/blank.gif)
// close the connection throw code, because no datareader will exist, hence the
![](/assets/blank.gif)
// commandBehaviour.CloseConnection will not work
![](/assets/blank.gif)
try
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
![](/assets/blank.gif)
SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
![](/assets/blank.gif)
cmd.Parameters.Clear();
![](/assets/blank.gif)
return rdr;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
catch
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
conn.Close();
![](/assets/blank.gif)
throw;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public static object ExecuteScalar(CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
SqlCommand cmd = new SqlCommand();
![](/assets/blank.gif)
using (SqlConnection connection = new SqlConnection(SqlPlus.connectionString))
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
![](/assets/blank.gif)
object val = cmd.ExecuteScalar();
![](/assets/blank.gif)
cmd.Parameters.Clear();
![](/assets/blank.gif)
return val;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public static object ExecuteScalar(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
SqlCommand cmd = new SqlCommand();
![](/assets/blank.gif)
PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
![](/assets/blank.gif)
object val = cmd.ExecuteScalar();
![](/assets/blank.gif)
cmd.Parameters.Clear();
![](/assets/blank.gif)
return val;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public static DataTable ExecuteDataTable(CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
SqlCommand cmd = new SqlCommand();
![](/assets/blank.gif)
DataTable oTab = new DataTable();
![](/assets/blank.gif)
using (SqlConnection connection = new SqlConnection(SqlPlus.connectionString))
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
![](/assets/blank.gif)
SqlDataAdapter adp = new SqlDataAdapter(cmd);
![](/assets/blank.gif)
adp.Fill(oTab);
![](/assets/blank.gif)
}
![](/assets/blank.gif)
return oTab;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public static void CacheParameters(string cacheKey, params SqlParameter[] commandParameters)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
parmCache[cacheKey] = commandParameters;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public static SqlParameter[] GetCachedParameters(string cacheKey)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
SqlParameter[] cachedParms = (SqlParameter[])parmCache[cacheKey];
![](/assets/blank.gif)
if (cachedParms == null)
![](/assets/blank.gif)
return null;
![](/assets/blank.gif)
SqlParameter[] clonedParms = new SqlParameter[cachedParms.Length];
![](/assets/blank.gif)
for (int i = 0, j = cachedParms.Length; i < j; i++)
![](/assets/blank.gif)
clonedParms[i] = (SqlParameter)((ICloneable)cachedParms[i]).Clone();
![](/assets/blank.gif)
return clonedParms;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
if (conn.State != ConnectionState.Open)
![](/assets/blank.gif)
conn.Open();
![](/assets/blank.gif)
cmd.Connection = conn;
![](/assets/blank.gif)
cmd.CommandText = cmdText;
![](/assets/blank.gif)
if (trans != null)
![](/assets/blank.gif)
cmd.Transaction = trans;
![](/assets/blank.gif)
cmd.CommandType = cmdType;
![](/assets/blank.gif)
if (cmdParms != null)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
foreach (SqlParameter parm in cmdParms)
![](/assets/blank.gif)
cmd.Parameters.Add(parm);
![](/assets/blank.gif)
}
![](/assets/blank.gif)
}
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public static class Database
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
public static SqlParameter MakeInParam(string parameterName, SqlDbType dbType, int size)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
SqlParameter sqlPar = new SqlParameter(parameterName, dbType, size);
![](/assets/blank.gif)
return sqlPar;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public static SqlParameter MakeInParam(string parameterName, SqlDbType dbType, int size, object oValue)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
SqlParameter sqlPar = new SqlParameter(parameterName, dbType, size);
![](/assets/blank.gif)
sqlPar.Value = oValue;
![](/assets/blank.gif)
return sqlPar;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public static SqlParameter MakeInParam(string parameterName, SqlDbType dbType, int size, string sValue)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
SqlParameter sqlPar = new SqlParameter(parameterName, dbType, size);
![](/assets/blank.gif)
sqlPar.Value = sValue;
![](/assets/blank.gif)
return sqlPar;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public static SqlParameter MakeInParam(string parameterName, SqlDbType dbType, int size, int iValue)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
SqlParameter sqlPar = new SqlParameter(parameterName, dbType, size);
![](/assets/blank.gif)
sqlPar.Value = iValue;
![](/assets/blank.gif)
return sqlPar;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public static SqlParameter MakeInParam(string parameterName, SqlDbType dbType, int size, DateTime dValue)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
SqlParameter sqlPar = new SqlParameter(parameterName, dbType, size);
![](/assets/blank.gif)
if (dValue == DateTime.MinValue)
![](/assets/blank.gif)
sqlPar.Value = DBNull.Value;
![](/assets/blank.gif)
else
![](/assets/blank.gif)
sqlPar.Value = dValue;
![](/assets/blank.gif)
return sqlPar;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public static SqlParameter MakeInParam(string parameterName, SqlDbType dbType, int size, double dValue)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
SqlParameter sqlPar = new SqlParameter(parameterName, dbType, size);
![](/assets/blank.gif)
sqlPar.Value = dValue;
![](/assets/blank.gif)
return sqlPar;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public static string ValueToString(object oValue)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
if (oValue == System.DBNull.Value)
![](/assets/blank.gif)
return "";
![](/assets/blank.gif)
else
![](/assets/blank.gif)
return oValue.ToString();
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public static DateTime ValueToDateTime(object oValue)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
if (oValue == System.DBNull.Value)
![](/assets/blank.gif)
return DateTime.MinValue;
![](/assets/blank.gif)
else
![](/assets/blank.gif)
return Convert.ToDateTime(oValue);
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public static int ValueToInt(object oValue)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
if (oValue == System.DBNull.Value)
![](/assets/blank.gif)
return int.MinValue;
![](/assets/blank.gif)
else
![](/assets/blank.gif)
return Convert.ToInt32(oValue);
![](/assets/blank.gif)
}
![](/assets/blank.gif)
}