注: 数据库操作帮助封装类,简单易用,减少代码冗余
//数据库链接(也可配置在Web.config 文件中)
public static readonly string connectionString = "server=数据库链接;uid=账号;pwd=密码;database=数据库名";
/// <summary>
///执行一个不需要返回值的SqlCommand命令,通过指定专用的连接字符串。
/// 使用参数数组形式提供参数列表
/// </summary>
/// <param name="connectionString">一个有效的数据库连接字符串</param>
/// <param name="cmdType">SqlCommand命令类型 (存储过程, T-SQL语句, 等等。)</param>
/// <param name="cmdText">存储过程的名字或者 T-SQL 语句</param>
/// <param name="commandParameters">以数组形式提供SqlCommand命令中用到的参数列表</param>
/// <returns>返回一个数值表示此SqlCommand命令执行后影响的行数</returns>
public static int ExecteNonQuery(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
{
SqlCommand cmd = new SqlCommand();
cmd.CommandTimeout = 120;
using (SqlConnection conn = new SqlConnection(connectionString))
{
//通过PrePareCommand方法将参数逐个加入到SqlCommand的参数集合中
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
//清空SqlCommand中的参数列表
cmd.Parameters.Clear();
return val;
}
}
/// <summary>
///执行一个不需要返回值的SqlCommand命令,通过指定专用的连接字符串。
/// 使用参数数组形式提供参数列表
/// </summary>
/// <param name="cmdType">SqlCommand命令类型 (存储过程, T-SQL语句, 等等。)</param>
/// <param name="cmdText">存储过程的名字或者 T-SQL 语句</param>
/// <param name="commandParameters">以数组形式提供SqlCommand命令中用到的参数列表</param>
/// <returns>返回一个数值表示此SqlCommand命令执行后影响的行数</returns>
public static int ExecteNonQuery(CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
{
return ExecteNonQuery(connectionString, cmdType, cmdText, commandParameters);
}
/// <summary>
///存储过程专用
/// </summary>
/// <param name="cmdText">存储过程的名字</param>
/// <param name="commandParameters">以数组形式提供SqlCommand命令中用到的参数列表</param>
/// <returns>返回一个数值表示此SqlCommand命令执行后影响的行数</returns>
public static int ExecteNonQueryProducts(string cmdText, params SqlParameter[] commandParameters)
{
return ExecteNonQuery(CommandType.StoredProcedure, cmdText, commandParameters);
}
/// <summary>
///Sql语句专用
/// </summary>
/// <param name="cmdText">T_Sql语句</param>
/// <param name="commandParameters">以数组形式提供SqlCommand命令中用到的参数列表</param>
/// <returns>返回一个数值表示此SqlCommand命令执行后影响的行数</returns>
public static int ExecteNonQueryText(string cmdText, params SqlParameter[] commandParameters)
{
return ExecteNonQuery(CommandType.Text, cmdText, commandParameters);
}
/// <summary>
/// 调用存储过程,以及输出参数
/// </summary>
/// <param name="SqlProNmae">存储过程名</param>
/// <param name="error">输出参数,错误代码</param>
/// <param name="msg">输出参数,错误信息</param>
/// <param name="commandParameters">参数</param>
/// <returns></returns>
public static int ExecuteNonQueryOutPut(string SqlProNmae, out int error, out string msg, params SqlParameter[] commandParameters)
{
var Result = 0;
using (SqlConnection conn = new SqlConnection(connectionString))
{
try
{
SqlCommand cmd = new SqlCommand(SqlProNmae, conn);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter parOutput_error = cmd.Parameters.Add("@error", SqlDbType.Int, 50); //定义输出参数
parOutput_error.Direction = ParameterDirection.Output; //参数类型为Output
SqlParameter parOutput_msg = cmd.Parameters.Add("@msg", SqlDbType.NVarChar, 50); //定义输出参数
parOutput_msg.Direction = ParameterDirection.Output; //参数类型为Output
cmd.Parameters.AddRange(commandParameters);
conn.Open();
Result = cmd.ExecuteNonQuery();
error = (int)parOutput_error.Value;
msg = parOutput_msg.Value.ToString();
}
catch (System.Exception ex)
{
error = 10086;
msg = ex.Message;
}
}
return Result;
}