好久不寫sql,在這記錄一下sqlhelper類
阿新 • • 發佈:2018-12-10
記錄一下,萬一以後忘了呢
直接程式碼上:
class SqlHelper { // 從配置檔案讀取資料庫連線串並返回 //配置檔案裡app.config檔案 //< connectionStrings > // < add name = "SqlConn" connectionString = "server=資料庫地址;uid=使用者名稱;pwd=密碼;database=資料庫名" /> //</ connectionStrings > private static string conn = ConfigurationManager.ConnectionStrings["SqlConn"].ConnectionString; /// <summary> /// 適用於增、刪、改操作的方法。 /// </summary> /// <param name="sql">sql語句</param> /// <param name="parameters">sql語句中的引數</param> /// <returns></returns> public static int ExecuteNonQuery(string sql, params SqlParameter[] parameters) { using (SqlConnection sqlConn = new SqlConnection(conn))//建立SqlConnection資料庫連線物件 { using (SqlCommand cmd = sqlConn.CreateCommand())//建立SqlCommand物件 { sqlConn.Open();//開啟資料庫 cmd.CommandText = sql;//sql語句 cmd.Parameters.AddRange(parameters);//引數賦值 return cmd.ExecuteNonQuery();//返回受影響的行數 } } } /// <summary> /// 執行查詢,並返回查詢所返回的結果集中第一行的第一列 /// </summary> /// <param name="sql">sql語句</param> /// <param name="parameters">sql語句中的引數</param> /// <returns></returns> public static object ExecuteScalar(string sql, params SqlParameter[] parameters) { using (SqlConnection sqlConn = new SqlConnection(conn))//建立SqlConnection資料庫連線物件 { using (SqlCommand cmd = sqlConn.CreateCommand())//建立SqlCommand物件 { sqlConn.Open();//開啟資料庫 cmd.CommandText = sql;//sql語句 cmd.Parameters.AddRange(parameters);//引數賦值 return cmd.ExecuteScalar();//執行查詢,並返回查詢所返回的結果集中第一行的第一列 } } } /// <summary> /// 查詢資料表的所有列,每個列都讀取;直到讀完所有行 /// </summary> /// <param name="sql">sql語句</param> /// <param name="parameters">sql語句中的引數</param> /// <returns></returns> public static SqlDataReader ExecuteReader(string sql, params SqlParameter[] parameters) { SqlConnection sqlConn = new SqlConnection(conn);//這個方法不能關閉連線 SqlCommand cmd = sqlConn.CreateCommand(); sqlConn.Open();//開啟資料庫 cmd.CommandText = sql;//sql語句 cmd.Parameters.AddRange(parameters);//引數賦值 return cmd.ExecuteReader(CommandBehavior.CloseConnection); } /// <summary> /// 查詢並返回datatable資料集。 /// </summary> /// <param name="sql">sql語句</param> /// <param name="parameters">sql語句中的引數</param> /// <returns></returns> public static DataTable ExecuteDataTable(string sql, params SqlParameter[] parameters) { using (SqlDataAdapter sda=new SqlDataAdapter(sql,conn)) { DataTable dt = new DataTable(); sda.SelectCommand.Parameters.AddRange(parameters); sda.Fill(dt); return dt; } } }
介紹一下ExecuteReader方法的使用
新建一個類:userInfo
public class userInfo
{
public string Name { get; set; }
public string Address { get; set; }
}
然後前端邏輯:
private List<userInfo> userList = new List<userInfo>(); private void GetUserInfo() { string sql = "select name,address from userInfo"; SqlDataReader sdr = SqlHelper.ExecuteReader(sql, null); while (sdr.Read()) { userInfo user = new userInfo(); user.Name = sdr["name"].ToString() != null ? sdr["name"].ToString() : ""; user.Address = sdr["address"].ToString() != null ? sdr["address"].ToString() : ""; userList.Add(user); } }