本文主要記錄目前比較常用的兩種ASP.NET數據庫查詢和提取模式。
方法一:是利用SQL的查詢語句來進行數據庫檢索,然後利用DataReader提取數據,進行輸出。
方法二:是利用ENTITY FRAMEWORK,構建連接,利用Linq語句進行檢索查詢和輸出。
先說方法二:
這種結構相對簡單。
首先,在model文件夾中新建數據庫連接,獲得數據上下文。
然後在控制器中,實例化,並獲取泛型集合。
UserInfoEntities ef = new UserInfoEntities();
List<UserList> _list = ef.UserList.ToList();
最後使用linq語句,從集合中檢索。
_list = _list.OrderBy(c => c.ID).Skip(int.Parse(LastPageSize)).Take(PageSize).ToList();
return View(_list);
最後返還給view視圖。
方法一:
第一步與方法二相同;
第二步是在控制器中,創建sql查詢語句,然後通過DataReader把數據讀出,賦值給泛型集合。賦值的方法有兩種,一個是值對值的賦值,另一個是使用object對象,獲取全部數據。
由於我的測試案例相對簡單,所以使用了值對值的賦值方法。
UserInfoEntities ef = new UserInfoEntities();
string findSql = "select top " + PageSize + " * from UserList "
+ "where ID not in( select top " + LastPageSize + " ID from MyTestPages order by Id) order by ID";
string constr = "server=.;database=UserInfo;uid=sa;pwd=123456";
SqlConnection mycon = new SqlConnection(constr);
mycon.Open();
SqlCommand mycom = new SqlCommand(findSql, mycon);
SqlDataReader mydr = mycom.ExecuteReader();
List<UserList> _list=new List<UserList>();
while (mydr.Read())
{
UserList userList = new UserList();
//通過值對值的方式,給userList這個類分別賦值
//整體賦值可以通過循環獲取object,然後再賦值給泛型
//給id賦值的方式有一下幾種
//userList.ID = int.Parse(mydr.GetValue(0).ToString());
//userList.ID = int.Parse(mydr["ID"].ToString());?
userList.ID = int.Parse(mydr[0].ToString());
_list.Add(userList);
}
mydr.Close();
mycon.Close();
return View(_list);