通用数据访问类SQLHelper的编写
执行增删改操作
执行单一结果查询
执行一个结果集的查询:不能有finally
执行返回数据集的查询
获取数据库服务器时间
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
namespace WindowsFormsApp5
{
public class SQLHelper
{
public static readonly string connString = ConfigurationManager.ConnectionStrings["connString"].ToString();
/// <summary>
/// 执行增删改操作
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static int Update(string sql)
{
SqlConnection conn = new SqlConnection();
SqlCommand sqlCommand = new SqlCommand(sql, conn);
try
{
conn.Open();
return sqlCommand.ExecuteNonQuery();
}
catch (Exception ex)
{
throw ex;
}
finally
{
conn?.Close();
}
}
/// <summary>
/// 执行单一结果查询
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static object GetSingleResult(string sql)
{
SqlConnection conn = new SqlConnection();
SqlCommand sqlCommand = new SqlCommand(sql, conn);
try
{
conn.Open();
return sqlCommand.ExecuteScalar();
}
catch (Exception ex)
{
throw ex;
}
finally
{
conn?.Close();
}
}
/// <summary>
/// 执行一个结果集的查询
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static SqlDataReader GetReader(string sql)
{
SqlConnection conn = new SqlConnection();
SqlCommand sqlCommand = new SqlCommand(sql, conn);
try
{
conn.Open();
return sqlCommand.ExecuteReader(CommandBehavior.CloseConnection);
}
catch (Exception ex)
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
throw ex;
}
}
/// <summary>
/// 执行返回数据集的查询
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static DataSet GetDataSet(string sql)
{
SqlConnection conn = new SqlConnection();
SqlCommand sqlCommand = new SqlCommand(sql,conn);
SqlDataAdapter da = new SqlDataAdapter(sqlCommand);
DataSet ds = new DataSet();
try
{
conn.Open();
da.Fill(ds);
return ds;
}
catch (Exception ex)
{
throw ex;
}
finally
{
conn.Close();
}
}
public static DateTime GetServerTime()
{
return Convert.ToDateTime(GetSingleResult("select getdate()"));
}
}
}
通用数据访问类SQLDAL的编写
窗体是否存在
窗体嵌入步骤
修改管理员密码
将图像序列化为二进制
绑定数据源
用dataset筛选数据
读取两个查询结果
当绑定的是一个对象,而显示的内容是对象的字段时