2012-10-14 34 views
0

我有一个Asp.net项目,有人插入数据到SQL Server数据库,当他想要回想最新插入的数据(对于这个项目我写了一个存储过程,所以我会用在gridview中),他有按一个GridView的按钮来显示它们。如何使gridview显示模板字段中的所有数据列?

在gridview中,我想添加自己的模板(因为我有一些项目以及必须由我自己添加的Jquery日历)并将其绑定到服务器并选择存储过程来读取它。所以,我要读从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(); 
} 

,但我不知道为什么只显示其中之一(第二个),同时我想告诉里面的GridView一些其他的数据列。

这是第一个存储过程我写道:

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的日历与GridView的,所以我决定把他们分开,并为每个列写一个程序,并由select语句和GridView模板fields.these内召回他们在GridView里面是两个分开的存储过程:

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 

回答

0

第二个被示出,因为你是当你去GridView1.DataSource = dr2;

+0

我知道,但我想让它们都可见。我的意思是我如何显示它们两个或甚至更多数量的程序来显示。 –

0

一般而言一个GridView应该用于单个数据集的重写的第一数据源。如果你想显示多组数据,你应该使用多个GridViews,或者你可以使用UNION来连接数据或者嵌套GridViews,但这实际上使设置复杂化了。

如果您发布更多关于您正在尝试执行的操作或您正在使用的存储过程的信息,我们可能会提供更多帮助。

+0

好的。我将在上面编辑我的问题,我添加我的存储过程,以及我的其他代码。 –

+0

我还不确定你在GV中想要做什么,以及为什么你需要分离SP来利用Jquery日历。我不知道有一种方法可以使用2个SP来填充GV,以创建从两个存储过程和数据读取器手动填充的对象的单个通用列表。 – CoderMarkus

相关问题