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);
}

到目前为止,我可以从视图中提取行并显示它们,但我想知道如何优化我的代码,或者我是否遗漏了什么?

Using ADO for ASP MVC

您最好将查询分开一点;您可以将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}