如何在asp.net mvc中访问数据库?

时间:2016-07-29 01:33:34

标签: c# asp.net sql-server asp.net-mvc asp.net-mvc-4

在默认的asp.net应用程序中,我想访问其他用户的数据。在我的数据库表ASPNETUSERS中,我有ID,电子邮件,密码,性别等列。现在我希望能够搜索特定的ID,并获得该用户的全部详细信息,如他/她的电子邮件,密码,性别等等我该怎么做?

  1. 我是否使用原始SQL?如果是这样的话? (SO上有人提到这是一个坏主意)

  2. 我是否使用模特或其他东西?如果是这样的话?

  3. 这是我的ASPNETUSERS表信息。这是我在控制器中的动作。我希望能够得到一个名为" stackoverflow@gmail.com"的用户;并将他的所有细节(我表中的任何内容)发送到视图中。

    enter image description here

     private ApplicationDbContext db = new ApplicationDbContext();
     public ActionResult Index(string id = "")
            {
                //db.someCommand or something to let me get stuff about 
                //stackoverflow@gmail.com. Could it be db.Database.ExecuteSqlCommand ?
    
                return View("Send All details about my stackoverflow user");
            }
    

    编辑:这是我以前尝试过的。我尝试使用原始sql并将其转换为字符串(用于测试)并将其写入桌面上的文件。这样我觉得我至少知道我的数据库中的数据在传递给我的视图之前正确地传回给我。

    这是我在行动返回之前添加的代码行。

    System.IO.File.WriteAllText(@"C:\Users\Admin\Desktop\log.txt", db.Database.ExecuteSqlCommand("select * from dbo.AspNetUsers").ToString());
    

    我没有收到任何错误,但我希望上面图片中的数据能够发布到桌面上名为log.txt的文件中。但我打开log.txt文件只是为了找到" -1"被张贴在那里。

1 个答案:

答案 0 :(得分:1)

如果您想从数据库中获取用户,请将linq与ApplicationDBContext对象一起使用

ApplicationDbContext db = new ApplicationDbContext();
//Manipulate the Where clause to get the conditions you want
IEnumerable<ApplicationUser> users = db.Users.Where(x => x.Email == "stack@overflow.com");

这适用于开箱即用的ASP.NET个人身份验证模型(看起来像你拥有的)