0

getCusnmae1 という名前のストアド プロシージャを作成しました。

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

ALTER PROCEDURE [dbo].[getCusnmae1]
AS
BEGIN
    SELECT ALL * FROM dbo.Customers;
    SELECT ALL * FROM dbo.Order1;
END

プロパティクラスCustomerを作成し、グリッドにデータを表示したいというこれまでのこと

私が書いたコードは次のとおりです。

conn1.ConnectionString = " server=.\\ms2k5;database=Inventory;Trusted_Connection=true";
            conn1.Open();
            SqlCommand testCMD = new SqlCommand ("getCusnmae1", conn1);
            testCMD.CommandType = CommandType.StoredProcedure;
            SqlDataReader myReader = testCMD.ExecuteReader();
            List<Customer> list = new List<Customer>();
            while (myReader.Read())
            { 
                Customer md = new Customer();
                md.CustName = myReader.;
                md.custname = myReader.GetValue(1).ToString();
                md.contact = myReader.GetValue(2).ToString();
                list.Add(md);
            } 

Customers テーブルからのみ列の値を取得します。子テーブル Order1 からデータを取得するために必要なこと

私が書くとき

 md.contact = myReader.GetValue(3).ToString();

注文テーブルにアクセスするには機能しません..

助けてくださいありがとう

4

2 に答える 2

2

複数の結果を処理するには、SqlDataReader.NextResult()メソッドを使用します。

SqlDataReader myReader = testCMD.ExecuteReader();
while (myReader.Read())
 { 
  //
 } 
myReader.NextResult();
while (myReader.Read())
 { 
  //
 } 
于 2012-07-15T10:58:29.987 に答える
0

デフォルトでは、データ リーダーは最初の結果に配置されます。他の結果の使用からデータを取得するため

while (myReader .NextResult())
{}
于 2012-07-15T11:08:24.050 に答える