第一步添加我发的第一个作品:文件无限流。
第二部添加:SqlDataOperate、SqlServerDataBaseOperate2个类。
SqlDataOperate:代码如下
private static SqlDataOperate _Instance;
/// <summary>
/// 单实例系统配置管理类
/// </summary>
/// <returns></returns>
public static SqlDataOperate Instance
{
get
{
if (_Instance == null)
_Instance = new SqlDataOperate();
return _Instance;
}
}
#region 实时获取数据库的连接状态
/// <summary>
/// 实时获取数据库的连接状态
/// </summary>
/// <returns></returns>
public bool GetLinkStatus()
{
string sqlStr = string.Format("SELECT GETDATE()");
DataTable dt = SqlServerDataBaseOperate.ExecuteQueryBySqlStr(sqlStr);
if (dt == null)
{
return false;
}
else
{
return true;
}
}
#endregion
SqlServerDataBaseOperate:代码如下(写入或者连接都可以)
public class SqlServerDataBaseOperate
{
/// <summary>
/// 默认的数据库连接字符串
/// </summary>
public static string _defultConnectionString;
#region 获取数据库连接对象
/// <summary>
/// 重载一:获取数据库连接对象
/// </summary>
/// <param name="connectionString">数据库连接字符串</param>
/// <returns></returns>
public static SqlConnection SqlDBConnection(string connectionString)
{
SqlConnection _sqlConnection = new SqlConnection();
_sqlConnection.ConnectionString = connectionString;
_sqlConnection.Open();
return _sqlConnection;
}
#endregion
#region 获取数据库连接对象
/// <summary>
/// 重载二:获取数据库连接对象
/// </summary>
/// <returns></returns>
private static SqlConnection SqlDBConnection()
{
SqlConnection _sqlConnection = new SqlConnection();
_sqlConnection.ConnectionString = _defultConnectionString;
_sqlConnection.Open();
return _sqlConnection;
}
#endregion
#region 关闭数据库连接
/// <summary>
/// 关闭数据库连接对象
/// </summary>
/// <param name="_sqlConnection">连接中的数据库对象</param>
private static void CloseSqlConnection(SqlConnection _sqlConnection)
{
if (_sqlConnection.State == ConnectionState.Open)
{
_sqlConnection.Close();
}
}
#endregion
#region 获取数据集
/// <summary>
/// 获取多行数据
/// </summary>
/// <param name="_sqlCommand">对数据库的操作方式</param>
/// <returns></returns>
public static DataSet ExecuteQuery(SqlCommand _sqlCommand)
{
using (SqlConnection _sqlConnection = SqlDBConnection())
{
_sqlCommand.Connection = _sqlConnection;
DataSet _sqlDataSet = new DataSet();
SqlDataAdapter _sqlDataAdapter = new SqlDataAdapter();
_sqlDataAdapter.SelectCommand = _sqlCommand;
_sqlDataAdapter.Fill(_sqlDataSet);
CloseSqlConnection(_sqlConnection);
return _sqlDataSet;
}
}
#endregion
#region 获取受影响的行数
/// <summary>
/// 获取影响的行数
/// </summary>
/// <param name="comm"></param>
/// <returns></returns>
public static int ExecuteNonQuery(SqlCommand _sqlCommand)
{
using (SqlConnection _sqlConnection = SqlDBConnection())
{
_sqlCommand.Connection = _sqlConnection;
int rowsCount = _sqlCommand.ExecuteNonQuery();
CloseSqlConnection(_sqlConnection);
return rowsCount;
}
}
#endregion
#region 获取受影响行数,通过sql语句
/// <summary>
/// 获取受影响行数,通过sql语句(存储过程)
/// </summary>
/// <param name="sqlStr"></param>
/// <returns></returns>
public static bool ExecuteNonQueryByProcedure(string sqlStr)
{
int retInt = -1;
try
{
SqlCommand comm = new SqlCommand(sqlStr);
comm.CommandType = CommandType.StoredProcedure;
retInt = ExecuteNonQuery(comm);
}
catch
{
retInt = -1;
// LogHelper.LogFileHelper.SaveLogForExceptionClient(ex.StackTrace.ToString());
}
return retInt > 0;
}
/// <summary>
/// 获取受影响行数,通过sql语句(Sql语句)
/// </summary>
/// <param name="sqlStr"></param>
/// <returns></returns>
public static bool ExecuteNonQueryBySqlStr(string sqlStr)
{
int retInt = -1;
try
{
SqlCommand comm = new SqlCommand(sqlStr);
comm.CommandType = CommandType.Text;
retInt = ExecuteNonQuery(comm);
}
catch
{
retInt = -1;
// LogHelper.LogFileHelper.SaveLogForExceptionClient(ex.StackTrace.ToString());
}
return retInt > 0;
}
#endregion
#region 获取数据表
/// <summary>
/// 获取数据集,通过sql语句(存储过程)
/// </summary>
/// <param name="sqlStr"></param>
/// <returns></returns>
public static DataTable ExecuteQueryByProcedure(string sqlStr)
{
DataTable dt = new DataTable();
try
{
SqlCommand comm = new SqlCommand(sqlStr);
comm.CommandType = CommandType.StoredProcedure;
dt = ExecuteQuery(comm).Tables[0];
}
catch
{
dt = null;
//LogHelper.LogFileHelper.SaveLogForExceptionClient(ex.StackTrace.ToString());
}
return dt;
}
/// <summary>
/// 获取数据集,通过sql语句(Sql语句)
/// </summary>
/// <param name="sqlStr"></param>
/// <returns></returns>
public static DataTable ExecuteQueryBySqlStr(string sqlStr)
{
DataTable dt = new DataTable();
try
{
SqlCommand comm = new SqlCommand(sqlStr);
comm.CommandType = CommandType.Text;
dt = ExecuteQuery(comm).Tables[0];
}
catch
{
dt = null;
//LogHelper.LogFileHelper.SaveLogForExceptionClient(ex.StackTrace.ToString());
}
return dt;
}
#endregion
然后在main的方法外加个方法:
······ /// <summary>
/// 初始化软件配置
/// </summary>
private static void InitialSoftWare()
{
try
{
string strAppPath = Application.StartupPath;
GlobalSystemConfig.Instance.AppStartPath = strAppPath;
string strConfigFilePath = Path.Combine(strAppPath, @"AppConfigDir\SystemConfigSet.xml");
ConfigFile configFile = new ConfigFile(strConfigFilePath);
GlobalSystemConfig.Instance.SqlServerConnectStringLocal = configFile.AppSettings["SqlServerConnectStringLocal"];
SqlServerDataBaseOperate._defultConnectionString = GlobalSystemConfig.Instance.SqlServerConnectStringLocal;
}
catch (Exception ex)
{
MessageBox.Show(ex.StackTrace.ToString());
}
}
然后在文件配置里,配置文件:
第一个文件内容:
[PauaeGuid]
PauaeGuid=T
第二个文件: 要手动创建文件手动输入配置如下:
加个线程让他一直连接一直读取。
把数据库配置进去就可以进行数据读写了。