标签:style blog class code java tar
想写一个app可以访问数据库,实现对数据库的查询,修改等,突然发现知识实在有限,故选择C#来实现此app。
使用简单的三层架构来作为此app的架构。表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。
从底层开始实现对数据库的读取,该例中使用MS SQL Server 2K8 R2。
在解决方案中新建App.config,把数据库连接字符保存在里面,方便修改
<?xml version="1.0" encoding="utf-8" ?> <configuration> <connectionStrings> <add name ="connstr" connectionString="Data Source=.; Initial Catalog=MyTest;User ID=sa;Password=123456 "/> </connectionStrings> </configuration>
SQLhelper
static class SqlHelper { public static readonly string connstr = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString; public static int ExecuteNonQuery(string sql, params SqlParameter[] parameters) { using (SqlConnection conn = new SqlConnection(connstr)) { conn.Open(); using (SqlCommand cmd = conn.CreateCommand()) { cmd.CommandText = sql; cmd.Parameters.AddRange(parameters); return cmd.ExecuteNonQuery();//对于 UPDATE、INSERT 和 DELETE 语句,返回值为该命令所影响的行数 } } } public static object ExecuteScalar(string sql, params SqlParameter[] parameters) { using (SqlConnection conn = new SqlConnection(connstr)) { conn.Open(); using (SqlCommand cmd = conn.CreateCommand()) { cmd.CommandText = sql; cmd.Parameters.AddRange(parameters); return cmd.ExecuteScalar();//执行查询,并返回查询所返回的结果集中第一行的第一列。 忽略其他列或行。 } } } public static DataTable ExecuteDataTable(string sql, params SqlParameter[] parameters) { using (SqlConnection conn = new SqlConnection(connstr)) { conn.Open(); using (SqlCommand cmd = conn.CreateCommand()) { cmd.CommandText = sql; cmd.Parameters.AddRange(parameters); DataSet dataset = new DataSet();//表示一个存放于内存中的数据缓存 SqlDataAdapter adapter = new SqlDataAdapter(cmd);//表示用于填充 DataSet 和更新 SQL Server 数据库的一组数据命令和一个数据库连接。 此类不能被继承 adapter.Fill(dataset); return dataset.Tables[0]; } } } public static object FromDbValue(object value) { if (value == DBNull.Value) { return null; } else { return value; } } public static object ToDbValue(object value) { if (value == null) { return DBNull.Value; } else { return value; } } }
public static int ExecuteNonQuery(string sql, params SqlParameter[] parameters)
ExecuteNonQuery 用来实现Insert,delete,update等SQL语句
public static object ExecuteScalar(string sql, params SqlParameter[] parameters)
ExecuteScalar执行查询,并返回查询所返回的结果集中第一行的第一列或空引用(如果结果集为空).忽略其他列或行.
使用 ExecuteScalar 方法从数据库中检索单个值。因为不用创建行集、查找值并关闭行集,所以产生的系统开销非常小与使用 ExecuteReader方法,然后使用 SqlDataReader 返回的数据执行生成单个值所需的操作相比,此操作需要的代码较少
public static DataTable ExecuteDataTable(string sql, params SqlParameter[] parameters)
ExecuteDataTable 将查询数据库中的结果表存放在DataSet中,并返回DataTable类型
标签:style blog class code java tar
原文地址:http://www.cnblogs.com/dreamtaker/p/3708066.html