一共涉及三个类分别为:
数据访问类DBObject.cs、对应功能针对数据库操作类IRMNewsInteDB.cs、数据抓取类SpiderDispose.cs
数据访问类DBObject.cs、对应功能针对数据库操作类IRMNewsInteDB.cs、数据抓取类SpiderDispose.cs
数据访问类:DBObject.cs
数据访问基类
using System;
using System.Data;
using System.Data.SqlClient;
namespace IRMSpiderTool.DBA
{
/**//// <summary>
/// 所有数据库连接类的基类
/// </summary>
public abstract class DBObject
{
/**//// <summary>
/// DBObject的连接对象
/// </summary>
protected SqlConnection Connection;
/**//// <summary>
/// 私有变量,当前对象的连接字符串
/// </summary>
private string _connectionString = string.Empty;
/**//// <summary>
/// 私有变量,执行数据库操作所产生的错误信息
/// </summary>
private string _strError = string.Empty;
/**//// <summary>
/// 通过连接字符串创建数据库连接对象
/// </summary>
/// <param name="newConnectionString">连接字符串</param>
protected void CreateConnection( string newConnectionString )
{
_connectionString = newConnectionString;
Connection = new SqlConnection(_connectionString);
}
/**//// <summary>
/// 只读属性,返回当前对象的连接字符串
/// </summary>
protected string ConnectionString
{
get
{
return _connectionString;
}
}
/**//// <summary>
/// 只读属性,返回错误与异常信息
/// </summary>
protected string StrError
{
get
{
return _strError;
}
}
/**//// <summary>
/// 将错误信息赋值给变量用于外部调用
/// </summary>
/// <param name="strFunctionName">出错所调用的函数名称</param>
/// <param name="strProcName">出错所执行的存储过程或是SQL</param>
/// <param name="strError">错误异常信息</param>
private void SetErrorMsg(string strFunctionName,string strProcName,string strErrMsg)
{
_strError = "错误归属函数:" + strFunctionName + "/n错误标识:" + strProcName + "/n异常信息:" + strErrMsg;
}
// /// <summary>
// /// 创建一个返回参数用于判断执行存储过程是否成功
// /// </summary>
// /// <param name="StoredProcName">存储过程名</param>
// /// <param name="sqlParameters">参数数组</param>
// /// <returns>新的Command对象</returns>
// private SqlCommand BuildIntCommand( string storedProcName,IDataParameter[] sqlParameters )
// {
// SqlCommand sqlCommand = BuildQueryCommand( storedProcName, sqlParameters );
//
// sqlCommand.Parameters.Add( new SqlParameter( "@iSuccess",
// SqlDbType.Int, 4, //
// ParameterDirection.Output, false, // 可以为空
// 0, // 精度
// 0, // 范围
// string.Empty, DataRowVersion.Default, null));
//
// return sqlCommand;
// }
/**//// <summary>
/// 创建用于存储过程执行的 Command
/// </summary>
/// <param name="storedProcName">存储过程名</param>
/// <param name="sqlParameters">参数清单</param>
/// <returns>新的Command对象</returns>
private SqlCommand BuildQueryCommand( string storedProcName, IDataParameter[] sqlParameters )
{
SqlCommand sqlCommand = new SqlCommand( storedProcName, Connection );
sqlCommand.CommandType = CommandType.StoredProcedure;
foreach (SqlParameter parameter in sqlParameters)
{
sqlCommand.Parameters.Add( parameter );
}
return sqlCommand;
}
private SqlCommand BuildQueryCommand( string storedProcName)
{
SqlCommand sqlCommand = new SqlCommand( storedProcName, Connection );
sqlCommand.CommandType = CommandType.StoredProcedure;
return sqlCommand;
}
/**//// <summary>
/// 创建用于SQL 语句执行的 Command
/// </summary>
/// <param name="storedProcName">要执行的SQL语句</param>
/// <param name="sqlParameters">参数清单</param>
/// <returns>新的Command对象</returns>
private SqlCommand BuildSqlCommand( string strSql, IDataParameter[] sqlParameters )
{
SqlCommand sqlCommand = new SqlCommand( strSql, Connection );
foreach (SqlParameter parameter in sqlParameters)
{
sqlCommand.Parameters.Add( parameter );
}
return sqlCommand;
}
/**//// <summary>
/// 创建无参数用于SQL语句执行的 Command 对象
/// </summary>
/// <param name="storedProcName">要执行的SQL语句</param>
/// <returns>新的Command对象</returns>
private SqlCommand BuildSqlCommand( string strSql )
{
SqlCommand sqlCommand = new SqlCommand( strSql, Connection );
return sqlCommand;
}
/**//// <summary>
/// 执行存储过程,返回该存储过程影响的行数
/// </summary>
/// <param name="storedProcName">存储过程名</param>
/// <param name="sqlParameters">参数清单,注意:如果需要输出参数,应把输出参数索引定为最后一项</param>
/// <returns>执行是否成功,大于0成功,小于0失败</returns>
protected int RunProcInt( string storedProcName, IDataParameter[] sqlParameters)
{
using System;
using System.Data;
using System.Data.SqlClient;
namespace IRMSpiderTool.DBA
{
/**//// <summary>
/// 所有数据库连接类的基类
/// </summary>
public abstract class DBObject
{
/**//// <summary>
/// DBObject的连接对象
/// </summary>
protected SqlConnection Connection;
/**//// <summary>
/// 私有变量,当前对象的连接字符串
/// </summary>
private string _connectionString = string.Empty;
/**//// <summary>
/// 私有变量,执行数据库操作所产生的错误信息
/// </summary>
private string _strError = string.Empty;
/**//// <summary>
/// 通过连接字符串创建数据库连接对象
/// </summary>
/// <param name="newConnectionString">连接字符串</param>
protected void CreateConnection( string newConnectionString )
{
_connectionString = newConnectionString;
Connection = new SqlConnection(_connectionString);
}
/**//// <summary>
/// 只读属性,返回当前对象的连接字符串
/// </summary>
protected string ConnectionString
{
get
{
return _connectionString;
}
}
/**//// <summary>
/// 只读属性,返回错误与异常信息
/// </summary>
protected string StrError
{
get
{
return _strError;
}
}
/**//// <summary>
/// 将错误信息赋值给变量用于外部调用
/// </summary>
/// <param name="strFunctionName">出错所调用的函数名称</param>
/// <param name="strProcName">出错所执行的存储过程或是SQL</param>
/// <param name="strError">错误异常信息</param>
private void SetErrorMsg(string strFunctionName,string strProcName,string strErrMsg)
{
_strError = "错误归属函数:" + strFunctionName + "/n错误标识:" + strProcName + "/n异常信息:" + strErrMsg;
}
// /// <summary>
// /// 创建一个返回参数用于判断执行存储过程是否成功
// /// </summary>
// /// <param name="StoredProcName">存储过程名</param>
// /// <param name="sqlParameters">参数数组</param>
// /// <returns>新的Command对象</returns>
// private SqlCommand BuildIntCommand( string storedProcName,IDataParameter[] sqlParameters )
// {
// SqlCommand sqlCommand = BuildQueryCommand( storedProcName, sqlParameters );
//
// sqlCommand.Parameters.Add( new SqlParameter( "@iSuccess",
// SqlDbType.Int, 4, //
// ParameterDirection.Output, false, // 可以为空
// 0, // 精度
// 0, // 范围
// string.Empty, DataRowVersion.Default, null));
//
// return sqlCommand;
// }
/**//// <summary>
/// 创建用于存储过程执行的 Command
/// </summary>
/// <param name="storedProcName">存储过程名</param>
/// <param name="sqlParameters">参数清单</param>
/// <returns>新的Command对象</returns>
private SqlCommand BuildQueryCommand( string storedProcName, IDataParameter[] sqlParameters )
{
SqlCommand sqlCommand = new SqlCommand( storedProcName, Connection );
sqlCommand.CommandType = CommandType.StoredProcedure;
foreach (SqlParameter parameter in sqlParameters)
{
sqlCommand.Parameters.Add( parameter );
}
return sqlCommand;
}
private SqlCommand BuildQueryCommand( string storedProcName)
{
SqlCommand sqlCommand = new SqlCommand( storedProcName, Connection );
sqlCommand.CommandType = CommandType.StoredProcedure;
return sqlCommand;
}
/**//// <summary>
/// 创建用于SQL 语句执行的 Command
/// </summary>
/// <param name="storedProcName">要执行的SQL语句</param>
/// <param name="sqlParameters">参数清单</param>
/// <returns>新的Command对象</returns>
private SqlCommand BuildSqlCommand( string strSql, IDataParameter[] sqlParameters )
{
SqlCommand sqlCommand = new SqlCommand( strSql, Connection );
foreach (SqlParameter parameter in sqlParameters)
{
sqlCommand.Parameters.Add( parameter );
}
return sqlCommand;
}
/**//// <summary>
/// 创建无参数用于SQL语句执行的 Command 对象
/// </summary>
/// <param name="storedProcName">要执行的SQL语句</param>
/// <returns>新的Command对象</returns>
private SqlCommand BuildSqlCommand( string strSql )
{
SqlCommand sqlCommand = new SqlCommand( strSql, Connection );
return sqlCommand;
}
/**//// <summary>
/// 执行存储过程,返回该存储过程影响的行数
/// </summary>
/// <param name="storedProcName">存储过程名</param>
/// <param name="sqlParameters">参数清单,注意:如果需要输出参数,应把输出参数索引定为最后一项</param>
/// <returns>执行是否成功,大于0成功,小于0失败</returns>
protected int RunProcInt( string storedProcName, IDataParameter[] sqlParameters)
{