none
关于GridView中的相关问题 RRS feed

  • 问题

  • 为什么,今天在开发系统过程中,设计一张页面中包含两个GridView ,在调试的时候却只能出现一个,而另一个却无法显示!

    • 已移动 mldark 2010年1月25日 13:24 (发件人:Visual C#)
    2010年1月25日 12:19

答案

  • 打开 SQL Profile 跟踪一下看看查询语句是否执行,如果执行了,看看查询语句是否按照你预期的生成并能查询出结果。
    知识改变命运,奋斗成就人生!
    2010年1月26日 1:13
    版主
  • 不显示内容说明你的数据源没有取回值
    【孟子E章】
    2010年1月26日 13:45
    版主
  • 楼主你好,

    如老孟所言,没显示就是没取到数据。那没取到数据和你这个insert的这个语句有什么关系。 你的sqldatasource2是select语句。你应该如上面的X.X.Y版主的提示采用sql profile跟踪下数据库的运行,看看那个sqldaasource中的select语句是否执行。sql profile使用可以参考这个连接
    http://blog.csdn.net/sdust_zh/archive/2008/07/25/2711375.aspx

    如果你不想这样做,那你直接手写查询生成datatable付给这个gridview试试。

    Microsoft Online Community Support
    2010年1月27日 1:38

全部回复

  • GridView 中进行数据绑定的过程中,为什么在同一页面上的设计两个gridview,调试时只能出现一个呢 ?
    2010年1月25日 10:42
  • 请把代码贴出来吧
    2010年1月25日 12:48
  • 另一个没有绑定

    2010年1月25日 13:21
  • 另一个没有执行绑定把
    2010年1月25日 13:24
  • 绑定了啊!我还运行了一下!

    2010年1月25日 14:04
  • 绑定了啊!我还运行了一下!


    贴出代码看看
    2010年1月25日 14:23
  •  <span class="style9">&nbsp;您已经选修的课程</span></p>
        <p>
            <asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False"
                CellPadding="4" DataKeyNames="CourseTeacherID,CourseID,TeacherID"
                DataSourceID="SqlDataSource2" ForeColor="#333333" GridLines="None"
                Height="291px" Width="606px" onrowcommand="GridView2_RowCommand">
                <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
                <RowStyle BackColor="#EFF3FB" />
                <Columns>
                    <asp:BoundField DataField="CourseTeacherID" HeaderText="CourseTeacherID"
                        InsertVisible="False" SortExpression="CourseTeacherID" Visible="False" />
                    <asp:BoundField DataField="CourseID" HeaderText="CourseID" ReadOnly="True"
                        SortExpression="CourseID" Visible="False" />
                    <asp:BoundField DataField="TeacherID" HeaderText="TeacherID" ReadOnly="True"
                        SortExpression="TeacherID" Visible="False" />
                    <asp:BoundField DataField="CourseName" HeaderText="课程名称"
                        SortExpression="CourseName" />
                    <asp:BoundField DataField="TeacherName" HeaderText="教师姓名"
                        SortExpression="TeacherName" />
                    <asp:BoundField DataField="CourseTime" HeaderText="上课时间"
                        SortExpression="CourseTime" />
                    <asp:BoundField DataField="CourseAddress" HeaderText="上课地点"
                        SortExpression="CourseAddress" />
                    <asp:ButtonField CommandName="tuixuan" HeaderText="退选" Text="退选" />
                </Columns>
                <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
                <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
                <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
                <EditRowStyle BackColor="#2461BF" />
                <AlternatingRowStyle BackColor="White" />
            </asp:GridView>
            <asp:SqlDataSource ID="SqlDataSource2" runat="server"
                ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
                SelectCommand="SELECT CT.CourseID, CT.CourseName, CT.CourseTeacherID, CT.CourseTime, CT.CourseAddress, TT.TeacherID, TT.TeacherName, ECT.StudentID FROM CourseTable AS CT INNER JOIN ElectCourseTable AS ECT ON CT.CourseTeacherID = ECT.CourseTeacherID INNER JOIN TeacherTable AS TT ON CT.TeacherID = TT.TeacherID WHERE (ECT.StudentID = @StudentID)">
                <SelectParameters>
                    <asp:SessionParameter DefaultValue="1" Name="StudentID"
                        SessionField="Session[&quot;StudentID&quot;]" />
                </SelectParameters>
            </asp:SqlDataSource>



    就是这个GridView没有显示出来,拜托了!
    2010年1月25日 14:28
  • <asp:SqlDataSource ID="SqlDataSource2" runat="server"
                ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
               
               SelectCommand="SELECT CT.CourseID, CT.CourseName, CT.CourseTeacherID, CT.CourseTime, CT.CourseAddress, TT.TeacherID, TT.TeacherName, ECT.StudentID FROM CourseTable AS CT INNER JOIN ElectCourseTable AS ECT ON CT.CourseTeacherID = ECT.CourseTeacherID INNER JOIN TeacherTable AS TT ON CT.TeacherID = TT.TeacherID WHERE (ECT.StudentID = @StudentID)"
               ProviderName="System.Data.SqlClient">
                <SelectParameters>
                    <asp:SessionParameter DefaultValue="1" Name="StudentID"
                        SessionField="StudentID" />

                </SelectParameters>
            </asp:SqlDataSource>

    2010年1月25日 15:11
  • 即使那修改,也还是不行的!

    2010年1月26日 1:00
  • 打开 SQL Profile 跟踪一下看看查询语句是否执行,如果执行了,看看查询语句是否按照你预期的生成并能查询出结果。
    知识改变命运,奋斗成就人生!
    2010年1月26日 1:13
    版主
  • 你好,

    1、设置断点,查看你的
    StudentID是否有值。
    2、如果有值,把该值代替查询语句,看查询语句是否正确。
    2010年1月26日 1:38
    版主
  • 您好,由于我设计的学籍管理系统,我在应用设置数据源的时候,是使用自定义SQL语言,但在查询生成器中的生成语句是我的预期值
    2010年1月26日 2:46
  • 版主,你好!
    我想请问一下,这条SQL错误语句的含义:数据库错误,错误原因:INSERT 语句与 COLUMN FOREIGN KEY 约束 'FK__ElectCour__Stude__403A8C7D'

    冲突。该冲突发生于数据库 'Student',表 'StudentTable', column 'StudentID'。语句已终止。我当时设置的时候是ElectCourseTable中的StudentID是不唯一的,即一个学生可以选修多门课程;但我在设计StudentTable时把StudentID设计成为唯一的unique,SudentID在这两张表中均是主键,且我把它们相互之间有设置成了外键,不知这样做是否稳妥!是不是这个原因造成了上述的错误!

    2010年1月26日 2:51
  • 您好,由于我设计的学籍管理系统,我在应用设置数据源的时候,是使用自定义SQL语言,但在查询生成器中的生成语句是我的预期值
    检查一下StudentID这个参数是否也是预期值,很多时候这个值在写错的时候会是Null。
    2010年1月26日 4:37
    版主
  • 版主,你好!
    我想请问一下,这条SQL错误语句的含义:数据库错误,错误原因:INSERT 语句与 COLUMN FOREIGN KEY 约束 'FK__ElectCour__Stude__403A8C7D'

    冲突。该冲突发生于数据库 'Student',表 'StudentTable', column 'StudentID'。语句已终止。我当时设置的时候是ElectCourseTable中的StudentID是不唯一的,即一个学生可以选修多门课程;但我在设计StudentTable时把StudentID设计成为唯一的unique,SudentID在这两张表中均是主键,且我把它们相互之间有设置成了外键,不知这样做是否稳妥!是不是这个原因造成了上述的错误!

    你好,你Insert的时候,StudentId这个主键的值,在另外一个表的外键已经存在。也就是说主,外键不能重复。
    2010年1月26日 4:39
    版主
  • 我已经找到了问题的所在,是默认值出现了问题,但现在的问题,就是不能随机的进行刷新,无论谁打开,其初始的页面总是那是原来的那个,不能实时进行更新,应该是配置数据源中的参数那一部分出现了问题!

    2010年1月26日 4:42
  • 版主,你好!
    我想请问一下,这条SQL错误语句的含义:数据库错误,错误原因:INSERT 语句与 COLUMN FOREIGN KEY 约束 'FK__ElectCour__Stude__403A8C7D'

    冲突。该冲突发生于数据库 'Student',表 'StudentTable', column 'StudentID'。语句已终止。我当时设置的时候是ElectCourseTable中的StudentID是不唯一的,即一个学生可以选修多门课程;但我在设计StudentTable时把StudentID设计成为唯一的unique,SudentID在这两张表中均是主键,且我把它们相互之间有设置成了外键,不知这样做是否稳妥!是不是这个原因造成了上述的错误!


    你好!

    如果 ElectCourseTable 是你的选课表,那这张表的课程ID与学生ID是组合主键才对。这样才能保证一个学生可以选从个课程。

    另外刚才如果你跟踪的SQL在数据中都能正确的查出数据,你可以新增一个空白界面重新拖放一下 GridView,使用相同的方式绑定它。看看能否显示,如能显示就对比两个页面的不同之处。

    知识改变命运,奋斗成就人生!
    2010年1月26日 4:44
    版主
  • 你好,你Insert的时候,StudentId这个主键的值,在另外一个表的外键已经存在。也就是说主,外键不能重复。

    版主,你好!您的意思是否是这样的:如果StudentID是ElectCourseTable的主键,那它就不能在成为StudentTable的外键(此时StudentTable的主键也是StudentID)?
    2010年1月26日 4:48
  • X.X.Y版主,您好,我在设计 ElectCourseTable 时,已经将StudentID与课程ID设为组合主键,刚才那么说为了表述方便的,所以不小心把它给忘了!我来按照你第二个建议试一下
    2010年1月26日 4:52
  • 既然使用的是 SessionParameter 那么在你这个页面执行之前保证 Session["StudentID"]被赋上正确的值就可以了。
    知识改变命运,奋斗成就人生!
    2010年1月26日 5:02
    版主
  • 另外刚才如果你跟踪的SQL在数据中都能正确的查出数据,你可以新增一个空白界面重新拖放一下 GridView,使用相同的方式绑定它。看看能否显示,如能显示就对比两个页面的不同之处。

    我刚试了一下,不能显示!
    2010年1月26日 5:05
  • 另外刚才如果你跟踪的SQL在数据中都能正确的查出数据,你可以新增一个空白界面重新拖放一下 GridView,使用相同的方式绑定它。看看能否显示,如能显示就对比两个页面的不同之处。

    我刚试了一下,不能显示!我只能将配置数据源的默认值修改为我数据库中已有的学号它才能进行显示,是不是我要修改我的ElectCourseTable将它的StudentID设置为允许为空时,就可以在默认值为0时,都能显示出来,但想想如果将它的StudentID设置为允许为空时,就违反了完整性约束了啊!
    2010年1月26日 5:10
  • 版主,你好!
    我想请问一下,这条SQL错误语句的含义:数据库错误,错误原因:INSERT 语句与 COLUMN FOREIGN KEY 约束 'FK__ElectCour__Stude__403A8C7D'

    冲突。该冲突发生于数据库 'Student',表 'StudentTable', column 'StudentID'。语句已终止。我当时设置的时候是ElectCourseTable中的StudentID是不唯一的,即一个学生可以选修多门课程;但我在设计StudentTable时把StudentID设计成为唯一的unique,SudentID在这两张表中均是主键,且我把它们相互之间有设置成了外键,不知这样做是否稳妥!是不是这个原因造成了上述的错误!

    你的描述:
    ElectCourseTable中的StudentID是不唯一的
    StudentTable时把StudentID设计成为唯一的unique
    SudentID在这两张表中均是主键,

    这样是不行的,主键必须唯一,不然就没有意义。
    2010年1月26日 7:50
    版主

  • 你的描述:
    ElectCourseTable中的StudentID是不唯一的
    StudentTable时把StudentID设计成为唯一的unique
    SudentID在这两张表中均是主键,

    这样是不行的,主键必须唯一,不然就没有意义。



    版主,你好,我的ElectCourseTable中的主键是StudentID和CourseTeacherID的组合键,上面之所以那样说,是为了表述方便的!

    2010年1月26日 12:26
  • 不显示内容说明你的数据源没有取回值
    【孟子E章】
    2010年1月26日 13:45
    版主
  • 楼主你好,

    如老孟所言,没显示就是没取到数据。那没取到数据和你这个insert的这个语句有什么关系。 你的sqldatasource2是select语句。你应该如上面的X.X.Y版主的提示采用sql profile跟踪下数据库的运行,看看那个sqldaasource中的select语句是否执行。sql profile使用可以参考这个连接
    http://blog.csdn.net/sdust_zh/archive/2008/07/25/2711375.aspx

    如果你不想这样做,那你直接手写查询生成datatable付给这个gridview试试。

    Microsoft Online Community Support
    2010年1月27日 1:38
  • 如老孟所言,没显示就是没取到数据。那没取到数据和你这个insert的这个语句有什么关系。 你的sqldatasource2是select语句。你应该如上面的X.X.Y版主的提示采用sql profile跟踪下数据库的运行,看看那个sqldaasource中的select语句是否执行。sql profile使用可以参考这个连接
    http://blog.csdn.net/sdust_zh/archive/2008/07/25/2711375.aspx

    如果你不想这样做,那你直接手写查询生成datatable付给这个gridview试试。

    版主,谢谢啦!今天又学到了新东西,我来试试这个Profile!
    2010年1月27日 2:58