日期:2014-05-18  浏览次数:21017 次

DataBinding:“System.Data.DataRowView”不包含名为“Title”的属性。
有一段程序,在未修改之前可以运行正常。本人想添加一个与之前有一样效果的GridView控件,于是对GridView5控件进行复制。修改了一下其中的一些小控件ID之后,对后台.cs相关代码也页进行了相同的复制,但是运行后报了题目中所示的的错误。
aspx页面的代码:
C# code

<asp:GridView ID="GridView6" runat="server" Width="100%" AutoGenerateColumns="False" BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" CellPadding="3">
<Columns>
   <asp:TemplateField HeaderText="综合题">
      <ItemTemplate>
        <table id="Table7" cellspacing="1" cellpadding="1" width="100%" align="center" border="0">
            <tr>
          <td>
         <asp:Label id="Label24" runat="server" Text='<%# Container.DataItemIndex+1 %>'>                     
                 </asp:Label>
         <asp:Label id="Label25" runat="server" Text='<%# Eval("Title","、{0}") %>'>(报错的地方)
         </asp:Label>    
         <asp:TextBox id="txtAnswer1" runat="server" Width="100%" TextMode="MultiLine"></asp:TextBox>                                                                    
         <asp:Label id="Label26" runat="server" Text='<%# Eval("ID") %>' Visible="False">
         </asp:Label>                                                                    
          </td>
        </tr>
     </table>
       </ItemTemplate>
   </asp:TemplateField>
</Columns>
</asp:GridView>


.cs代码:
C# code

        SqlParameter[] Params6 = new SqlParameter[2];
        Params6[0] = DB.MakeInParam("@PaperID", SqlDbType.Int, 4, paperID);               //试卷编号
        Params6[1] = DB.MakeInParam("@Type", SqlDbType.VarChar, 10, "综合题");            //题目类型        
        DataSet ds6 = DB.GetDataSet("Proc_PaperDetail", Params6);
        GridView6.DataSource = ds6;
        GridView6.DataBind();

DB.GetDataSet的代码:
C# code

public DataSet GetDataSet(string ProcName, SqlParameter[] Params)
{
     Open();
     SqlCommand Cmd = CreateCommand(ProcName, Params);
     SqlDataAdapter adapter = new SqlDataAdapter(Cmd);
     DataSet dataset = new DataSet();
     adapter.Fill(dataset);
     Close();
     return dataset;
}


这段代码是仿照复制添加GridView6前GridView5的代码进行修改的,运用到了存储过程(本人对这个不太懂),会不会是只复制添加了前面两段代码,对存储过程中sql语句没有成对添加?是不是 GridView6.DataSource = ds6那里导致出的错?
有个疑问就是有好几种题型和几个ds,代码都差不多,如何知道某个ds绑定了哪个数据表进行数据读取的操作呢?
找遍了所有代码,找不到ds跟数据库交互的sql语句。
求助!!!!

------解决方案--------------------
安装个SQLSERVER的管理工具不就方便了吗?http://www.microsoft.com/downloads/zh-cn/details.aspx?familyid=08e52ac2-1d62-45f6-9a4a-4b76a8564a2b&displaylang=zh-cn
其实Visual Studio也可以管理,但是功能没有这个强大。

至于修改存储过程,其实只要执行ALTER语句即可,但是前提是你要会写SQL语句。不过用上述的工具就不需要那么麻烦,自动创建更改脚本,然后只要微调即可。
------解决方案--------------------
探讨
嗯犯错了,连这个都没搞明白!用了Doy00提供的查看指令后,发现Proc_PaperDetailmr的存储过程里面就是缺少了“综合题”这个表单的引用。。。所以才……