2011-07-06 11 views
2

私はC#/ ASP.netプロジェクトに、私が使いやすく便利なビューを含むデータベースを用意しました。C#とAsp.netでSQL Server 2008のビューを使用する

作成したSQL Server 2008 DBにSQL接続をセットアップしました。それはうまく接続しているかのように思えますが、プログラムにクエリをハードコーディングせずに作成したViewを実際にどのように使用するのか分かりません。

これは私の接続である私のセットアップ:

SqlConnection conn = null; 
    conn = new SqlConnection("Data Source=raven\\sqlexpress;Initial Catalog=ucs;Integrated Security=True;Pooling=False"); 
    conn.Open(); 
    SqlCommand command = new SqlCommand(query, conn); 

は基本的に、私は、このビューを使用してクエリを実行するためにいくつかのコードが必要です。私はビューを見ることができ、取得される結果を見るが、プログラムにアクセスすることはできない! ビューの名前は "UserView"です。助けが大いにありがとう!

答えて

11

次のようなものを使用できます。しかし、ハードコードされたSQLコマンドを.Netコードに入れるのは悪い考えです。代わりにストアドプロシージャを使用する方がはるかに安全です。

これはあなたの作業を開始するはずです。あなたはそれがストアドプロシージャ呼び出し

  • だ示すためにcommand.CommandTypeを変更し、あなたのSPが必要コマンドに適切なパラメータを追加すること

    1. でストアドプロシージャを使用するように変更することができます。
    2. command.CommandTextをSPの名前に変更します。したがって、 は、ハードコードされたSQLを削除します。以下

    サンプルコード:

    using (SqlConnection connection = new SqlConnection("Data Source=raven\\sqlexpress;Initial Catalog=ucs;Integrated Security=True;Pooling=False")) 
    { 
        using (SqlCommand command = connection.CreateCommand()) 
        { 
         command.CommandText = "SELECT * from your_view WHERE your_where_clause"; 
    
         connection.Open(); 
         using (SqlDataReader reader = command.ExecuteReader()) 
         { 
          while (reader.Read()) 
          { 
           // process result 
           reader.GetInt32(0); // get first column from view, assume it's a 32-bit int 
           reader.GetString(1); // get second column from view, assume it's a string 
           // etc. 
          } 
         } 
        } 
    } 
    
  • +0

    downvoteが削除されました –

    +0

    ありがとうございました!これは正しく見える、私はただのビューから直接選択することができたか分からなかった。 しかし、ResultSetとExecuteQueryを使用できるようにするために使用するアセンブリ参照がありますか?どちらも未知数になっています。私は "using System.Data.SqlClient"を追加しました。 – ImGreg

    +0

    @Greg - ResultSetは以前の編集のものだったと思います。代わりに、SqlDataReaderを使用するように変更しました。上記のコードはコンパイルされませんか? System.Dataアセンブリでこれらのクラスを解決する必要があります。 – dcp

    -1

    使用VS2013は、あなたのプロジェクトに新しいデータセットを追加します。ビューをサーバーエクスプローラからデータセットデザインサーフェイスにドラッグします。

    +0

    あなたの答えにもっと詳しく記述してください。 – Banana

    +0

    この回答は非常に怠惰です。新しいデータセットを追加するには、ファイルメニュー、ツールメニュー、またはコードの特定の行をどのくらい正確に記述しますか?あなたが半分の真理を提供するならば、答えないでください。 – Sizons

    関連する問題