程序瘦身问题~~
关于数据库连接,现在有三个button按钮,难道我要在三个button_Click函数中添加数据库连接的代码吗??还有,数据库什么时候关闭呢? --------------------编程问答-------------------- 可以把数据库访问放在一个公共类里面 --------------------编程问答-------------------- 呵呵 ,能说的再详细点么?怎么操作,然后再怎么调用。新手~~~先谢过了~~ --------------------编程问答--------------------
static readonly string conn = ConfigurationManager.ConnectionStrings["db"].ConnectionString;
#region 提供一个SqlCommand对象的设置
/// <summary>
/// 提供一个SqlCommand对象的设置
/// </summary>
/// <param name="cmd">SqlCommand对象</param>
/// <param name="conn">SqlConnection 对象</param>
/// <param name="trans">SqlTransaction 对象</param>
/// <param name="cmdType">CommandType 如存贮过程,T-SQL</param>
/// <param name="cmdText">存贮过程名或查询串</param>
/// <param name="cmdParms">命令中用到的参数集</param>
private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms)
{
if (conn.State != ConnectionState.Open)
{
conn.Open();
}
cmd.Connection = conn;
cmd.CommandText = cmdText;
if (trans != null)
{
cmd.Transaction = trans;
}
cmd.CommandType = cmdType;
if (cmdParms != null)
{
foreach (SqlParameter parm in cmdParms)
{
cmd.Parameters.Add(parm);
}
}
}
#endregion
#region 此方法完成【普通的Sql】保存,更新,删除数据工作
/// <summary>
/// 此方法完成【普通的Sql】保存,更新,删除数据工作
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static void SqlOperator(string safeStatement)
{
using (SqlConnection con = new SqlConnection(conn))
{
con.Open();
SqlTransaction trans = con.BeginTransaction();
SqlCommand cmd = new SqlCommand(safeStatement, con);
cmd.Transaction = trans;
try
{
int val = cmd.ExecuteNonQuery();
trans.Commit();
}
catch (Exception ex)
{
trans.Rollback();
throw ex;
}
}
}
#endregion
#region 此方法完成【普通的Sql】的查询数据工作
/// <summary>
/// 此方法完成【普通的Sql】的查询数据工作
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static DataSet SqlQuery(string safeStatement)
{
DataSet ds = new DataSet();
using (SqlConnection con = new SqlConnection(conn))
{
try
{
con.Open();
SqlDataAdapter dap = new SqlDataAdapter(safeStatement, con);
dap.Fill(ds);
}
catch (Exception ex)
{
throw ex;
}
}
return ds;
}
#endregion
#region 此方法完成【存储过程】查询数据工作
/// <summary>
/// 此方法完成【存储过程】查询数据工作
/// </summary>
/// <param name="sql"></param>
/// <param name="commandParameters"></param>
/// <returns></returns>
public static DataSet ProQuery(string ProName, params SqlParameter[] commandParameters)
{
SqlConnection con = new SqlConnection(conn);
con.Open();
SqlCommand cmd = new SqlCommand();
DataSet ds = new DataSet();
try
{
PrepareCommand(cmd, con, null, CommandType.StoredProcedure, ProName, commandParameters);
SqlDataAdapter dap = new SqlDataAdapter(cmd);
dap.Fill(ds);
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (con.State == ConnectionState.Open)
con.Close();
cmd.Parameters.Clear();
}
return ds;
}
#endregion
#region 此方法完成预编译查询数据工作
public static DataSet PSqlQuery(string safeStatement, params SqlParameter[] commandParameters)
{
SqlConnection con = new SqlConnection(conn);
con.Open();
SqlCommand cmd = new SqlCommand(safeStatement, con);
DataSet ds = new DataSet();
try
{
foreach (SqlParameter p in commandParameters)
{
cmd.Parameters.Add(p);
}
SqlDataAdapter dap = new SqlDataAdapter(cmd);
dap.Fill(ds);
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (con.State == ConnectionState.Open)
con.Close();
cmd.Parameters.Clear();
}
return ds;
}
#endregion
#region 此方法完成预编译保存,更新,删除数据工作
public static void PSqlOperator(string safeStatement, params SqlParameter[] commandParameters)
{
SqlConnection con = new SqlConnection(conn);
con.Open();
SqlTransaction trans = con.BeginTransaction();
SqlCommand cmd = new SqlCommand(safeStatement, con, trans);
try
{
foreach (SqlParameter p in commandParameters)
{
cmd.Parameters.Add(p);
}
int val = cmd.ExecuteNonQuery();
trans.Commit();
}
catch (Exception ex)
{
trans.Rollback();
throw ex;
}
finally
{
if (con.State == ConnectionState.Open)
con.Close();
cmd.Parameters.Clear();
}
}
#endregion
#region 此方法完成【普通的sql】的添加工作同时返回identity
/// <summary>
/// 此方法完成【普通的sql】的添加工作同时返回identity
/// </summary>
public static int getscalar(string safestatement)
{
int i = 0;
using (SqlConnection sqlcon = new SqlConnection(conn))
{
sqlcon.Open();
SqlCommand sqlcmd = new SqlCommand(safestatement, sqlcon);
i = Convert.ToInt32(sqlcmd.ExecuteScalar());
}
return i;
}
#endregion
/// <summary>
/// 查询第一行第一列
/// </summary>
/// <param name="safeSql"></param>
/// <returns></returns>
#region 查询第一行,第一列
public static int GetScalar(string safeSql)
{
SqlConnection con = new SqlConnection(conn);
SqlCommand cmd = new SqlCommand(safeSql, con);
int result = Convert.ToInt32(cmd.ExecuteScalar());
return result;
}
#endregion
}
看不懂就去微软上下一个数据库公共类~!
补充:.NET技术 , C#