2016-07-29 16 views
-2

デフォルトのasp.netアプリケーションでは、他のユーザーのデータにアクセスしたいと思います。私のデータベーステーブルASPNETUSERSには、ID、電子メール、パスワード、性別などの列があります。今、私は特定のIDを検索して、彼/彼女の電子メール、パスワード、性別などのそのユーザーの詳細を取得できます私はそれをしますか?asp.net mvcのデータベースにアクセスするには?

  1. raw SQLは使用しますか?もしそうなら、どのように? (誰かが悪い考えとしてこれを言及しました)

  2. 私はモデルなどを使用していますか?もしそうなら、どのように?

これは私のASPNETUSERSテーブル情報です。そして、これはコントローラでの私の行動です。私は "[email protected]"と呼ばれるユーザーを取得し、すべての彼の詳細(テーブルにあるものはすべて)をビューに送信したいと考えています。

enter image description here

private ApplicationDbContext db = new ApplicationDbContext(); 
public ActionResult Index(string id = "") 
     { 
      //db.someCommand or something to let me get stuff about 
      //[email protected] 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というファイルに書き込まれると予想しました。しかし、私はそこに "-1"が掲載されていることを知るためにlog.txtファイルを開いただけです。

+0

Database.SqlExecuteCommandを試して文字列に変換してファイルに書き込もうとしましたが、ファイル "-1"が追加されました。 –

+0

私たちにいくつかのコードが表示されます。 – FrankerZ

+0

これは私がやったことです。 System.IO.File.WriteAllText(@ "C:\ Users \ Admin \ Desktop \ log.txt"、db.Database.ExecuteSqlCommand( "select * from dbo.AspNetUsers")。ToString()); ' –

答えて

1

あなたは、データベースからユーザーを取得したい場合は、これは(あなたが持っているもののように見える)ボックスASP.NET個人認証モデルのうちで動作します

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

あなたApplicationDBContextオブジェクトにlinqを使用

+0

ありがとうございました。これはまさに私が探していたものです。 –

関連する問題