想寫一個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; } } }View Codepublic static int ExecuteNonQuery(string sql, params SqlParameter[] parameters)
ExecuteNonQuery 用來實現Insert,delete,update等SQL語句

public static object ExecuteScalar(string sql, params SqlParameter[] parameters)View Code
ExecuteScalar執行查詢,并返回查詢所返回的結果集中第一行的第一列或空引用(如果結果集為空).忽略其他列或行.
使用 ExecuteScalar 方法從數據庫中檢索單個值。因為不用創建行集、查找值并關閉行集,所以產生的系統開銷非常小與使用 ExecuteReader方法,然后使用 SqlDataReader 返回的數據執行生成單個值所需的操作相比,此操作需要的代碼較少
public static DataTable ExecuteDataTable(string sql, params SqlParameter[] parameters)
ExecuteDataTable 將查詢數據庫中的結果表存放在DataSet中,并返回DataTable類型
新聞熱點
疑難解答