Using ADO for ASP MVC
本文关键字:MVC ASP for ADO Using | 更新日期: 2023-09-27 18:26:34
我的项目要求之一是制作一个DLL或助手,其中包含我与DB的所有交互,并使用ADO而不是EF。
以下是我目前所拥有的:
namespace repository
{
public class access
{
public string connectionString { get; set; }
public access()
{
connectionString = "Data Source=KISHGAL-PC''SQLEXPRESS;database=carl;Persist Security Info=True;User ID=sa;Password=123456ca;MultipleActiveResultSets=true";
}
public DataSet getData()
{
string query = "select * from department";
SqlDataAdapter adapter = new SqlDataAdapter(query, connectionString);
DataSet temp = new DataSet();
adapter.Fill(temp, "test");
return temp;
}
}
}
我找不到任何好的DataSet示例和用法(我的客户希望我使用DataSet)。所以我想问我是否走在正确的轨道上?
我通过做这样的事情从我的控制器调用一切:
[HttpGet]
public ActionResult test()
{
List<departments> dep = new List<departments>();
foreach (DataRow dr in cont.getData().Tables["test"].Rows)
{
dep.Add(new departments()
{
id = Convert.ToInt32(dr["id"]),
dname = Convert.ToString(dr["dname"])
});
}
return View(dep);
}
到目前为止,我可以从视图中提取行并显示它们,但我想知道如何优化我的代码,或者我是否遗漏了什么?
您最好将查询分开一点;您可以将Create、Update、Delete和Insert的方法作为类的方法。下面的代码T是一个泛型类型,您可以使用它将类型T的列表传递给方法。基本上,任何类型的查询语句都应该是分开的,这样你就可以有一个封装的dll和DB表,不管它们的访问权限是一样的,查询都会传递到dll方法中,你可以将该基本库用于任何ER模型。还有其他方法可以做到这一点,DAL就是这种功能所称的。
public DataSet SelectAll(string table)
{//.. code to select all}
public DataSet Select(string query)
{//.. code to select all}
public int Insert<T>(List<T> values)
{//.. code to select all}
public int Update<T>(List<T> values)
{//.. code to select all}