0

私は Asp.net に誰かがデータを SQL Server データベースに挿入するプロジェクトを持っています。彼が最後に挿入されたデータを呼び戻したいとき (この項目についてストアド プロシージャを作成したので、グリッドビューで使用します)、押す必要があります。それらをすべて表示するグリッドビューのボタン。

グリッドビューで、独自のテンプレートを追加したいと思います (自分で追加する必要があるアイテムと Jquery Calendar があるため)、それをサーバーにバインドし、ストアド プロシージャを選択して読み取ります。したがって、DB からデータを読み取る必要があるコードは次のとおりです。

protected void Button2_Click(object sender, EventArgs e)
{
        SqlDataReader dr = DataProvider.ExecuteDataReader("[dbo].[Get_LastIdHowzeEducationFinishDate_SP]", CommandType.StoredProcedure);
        GridView1.DataSource = dr;

        SqlDataReader dr2 = DataProvider.ExecuteDataReader("[dbo].[Get_LastIdHowzeEducationField_SP]", CommandType.StoredProcedure);
        GridView1.DataSource = dr2;
        GridView1.DataBind();
}

しかし、グリッドビュー内に他のデータ列を表示したいのに、そのうちの1つ(2番目)のみが表示される理由がわかりません。

これは私が書いた最初のストアド プロシージャです。

ALTER PROCEDURE [dbo].[Get_LastInsertedRowHowzeEducation_SP]
AS
BEGIN 
    SELECT
        he.FieldName as 'رشته تحصیلی',
        he.SchoolName as 'نام موسسه آموزشی',
        he.StudyCityDescribtion as 'محل تحصیل',
        he.Average as 'معدل',
        he.ThesisTitle as 'عنوان پایان نامه',
        he.Describtion as 'توضیحات' 
    FROM
        PersonHowEducation prh 
    INNER JOIN
        HowzeEducation he ON prh.HowzeEducationId = he.HowzeEducationId
    WHERE
        prh.IdCode = (SELECT IdCode FROM Persons 
                      WHERE IdCode = IDENT_CURRENT('persons'))
END

しかし、このコードではJqueryカレンダーをグリッドビューに追加できないため、それらを分離し、列ごとに手順を記述し、選択ステートメントによってグリッドビュー内とグリッドビューテンプレートフィールド内でそれらを呼び出すことにしました。手順 :

ALTER PROCEDURE [dbo].[Get_LastIdHowzeEducationFinishDate_SP]

AS
BEGIN 
select he.FinishLevelDate as 'تاریخ اتمام سطح'
   from PersonHowEducation prh inner join HowzeEducation he on 
          prh.HowzeEducationId=he.HowzeEducationId
          where prh.IdCode=
          (Select IdCode from Persons where IdCode=IDENT_CURRENT('persons'))

END

そして他の:

 ALTER PROCEDURE [dbo].[Get_LastInsertedRowHowzeEducation_SP]

AS
BEGIN 
select he.FieldName as 'رشته تحصیلی',he.SchoolName as 'نام موسسه آموزشی',
   he.StudyCityDescribtion as 'محل تحصیل',he.Average as 'معدل',
   he.ThesisTitle as 'عنوان پایان نامه',
   he.Describtion as 'توضیحات' 
   from PersonHowEducation prh inner join HowzeEducation he on 
          prh.HowzeEducationId=he.HowzeEducationId
          where prh.IdCode=
          (Select IdCode from Persons where IdCode=IDENT_CURRENT('persons'))

END
4

2 に答える 2

0

移動時に最初のデータソースを上書きしているため、2 番目のデータソースが表示されます。GridView1.DataSource = dr2;

于 2012-10-14T05:39:58.297 に答える
0

一般に、GridView は単一のデータ セットに使用する必要があります。複数のデータ セットを表示する場合は、複数の GridView を使用するか、UNION を使用してデータを接続するか、GridView をネストすることができますが、実際にはセットアップが複雑になります。

あなたがしようとしていること、または使用しているストアド プロシージャについてもう少し情報を投稿していただければ、さらに役立つことがあります。

于 2012-10-14T06:17:32.410 に答える