使用ADO for ASP MVC

时间:2015-12-12 05:44:04

标签: c# asp.net-mvc

我的项目要求之一是创建一个DLL或帮助程序,它将包含我与数据库的所有交互,并使用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);
}

到目前为止,我能够从我的视图中获取行并显示它们,但我想知道如何优化我的代码或者是否有任何我错过的内容?

1 个答案:

答案 0 :(得分:1)

你最好将你的查询分开一点;您可以将创建,更新,删除和插入的方法作为类的方法。下面的代码T是一个泛型类型,您可以使用它将类型T的列表传递给该方法。任何类型基本上,你的查询语句应该分开 - 这样你就可以有一个封装的dll - 和DB表,无论它们的访问是否相同 - 查询被传递到dll方法,你可以使用它任何ER模型的基础库。还有其他方法可以做到这一点DAL就是这个功能所指的。

{{1}}