100分高分求助关于DataBinding:“System.Data.DataRowView”不包含名为"TreatmentID”的属性的问题

justincvc 2009-02-27 06:16:22
我用OBJECTDATASOURCE绑定了GRIDVIEW,但当我运行时就出了这个提示,我肯定不是少了TREATMENTID这个字段,因为我检查过数据库N次..是有的...以下贴出的是代码...请大家帮帮忙,谢谢了...数据库是ACCESS

<%@ Page Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="ModifyTreatmentStep1.aspx.vb" Inherits="ModifyTreatmentStep1" title="ModifyTreatmentStep1 Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
SelectMethod="GetDataset" TypeName="GetData"></asp:ObjectDataSource>
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False"
CellPadding="4" DataSourceID="ObjectDataSource1" ForeColor="#333333" GridLines="None" DataKeyNames="TreatmentID" Font-Bold="False" Font-Names="Arial" Font-Size="Smaller">
<FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<Columns>
<asp:TemplateField HeaderText="Image">
<ItemTemplate>
<asp:Image ID="Image1" Width="90" Runat="Server" ImageUrl='<%# "~/Upload/" & Eval("Url") %>'/>
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
<FooterStyle BorderWidth="0px" />
</asp:TemplateField>
<asp:BoundField DataField="TreatmentName" HeaderText="Treatment Name" SortExpression="TreatmentName" />
<asp:BoundField DataField="TreatmentType" HeaderText="Treatment Type" SortExpression="TreatmentType" />
<asp:BoundField DataField="TreatmentPrice" HeaderText="Treatment Price" SortExpression="TreatmentPrice" />
<asp:TemplateField HeaderText="Edit">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" Text="Edit" Runat="Server" ForeColor="#990066" OnCommand="View_Edit" CommandName='<%# Eval("TreatmentID") %>'/>
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
</Columns>
<RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
<SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
<PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
<HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
</asp:Content>

分割线.-----------------------------------------------------------------------------------------------------------------------------------------------

下面是后台代码.
Imports System.data
Imports System.Drawing
Partial Class ModifyTreatmentStep1
Inherits System.Web.UI.Page

Sub View_Edit(ByVal Src As Object, ByVal Args As CommandEventArgs)
Response.Redirect("ModifyTreatmentStep2.aspx?TreatmentID=" & Args.CommandName)
End Sub

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

End Sub
End Class


请大家帮忙看看,谢谢了
...全文
602 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuuu121 2011-03-15
  • 打赏
  • 举报
回复
justincvc 2009-03-01
  • 打赏
  • 举报
回复
问题解决,解贴...就如CUTBUG所说...OBJECTDATASOURCE只返回第一个TABLE,还有谢谢其他人帮忙...结贴...
mubai007 2009-02-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 CutBug 的回复:]
ObjectDataSource只能对应一个Datatable,你说的TREATMENTID不在dataset的第一个datatable里吧
[/Quote]

如果你只需要一个DataTable的数据,那就让dataset只包含一个datatable吧;
或者调整dataset中DataTable的顺序,把有你所需数据的那个DataTable放在第一位。
justincvc 2009-02-28
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 CutBug 的回复:]
给一段测试代码

页面代码:

HTML code <form id="form1" runat="server">
<asp:ObjectDataSource runat="server" ID="objectDataSource1" TypeName="TestClass" SelectMethod="GetDS" >
</asp:ObjectDataSource>

<asp:Repeater runat="server" DataSourceID="objectDataSource1">
<ItemTemplate>
<%# Eval("a") %>
<%# Eval("b") %>这里会报错找不到b列,但是没…
[/Quote]

那请问有什么办法可以解决吗...谢谢...
我姓区不姓区 2009-02-28
  • 打赏
  • 举报
回复
检查一下你的sql语句,看看有没有把TreatmentID给查出来
koukoujiayi 2009-02-28
  • 打赏
  • 举报
回复
用ObjectDataSource往往会发生这样一种情况:
看看设置是对的,但运行错误,
解决的办法,把ObjectDataSource删掉,再重新设置一遍,一般可以通过!!
楼主可试试!!
CutBug 2009-02-28
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 justincvc 的回复:]
引用 6 楼 CutBug 的回复:
给一段测试代码

页面代码:

HTML code <form id="form1" runat="server">
<asp:ObjectDataSource runat="server" ID="objectDataSource1" TypeName="TestClass" SelectMethod="GetDS" >
</asp:ObjectDataSource>

<asp:Repeater runat="server" DataSourceID="objectDataSource1">
<ItemTemplate>
<%# Eval("a") %>
<%# Eval("…
[/Quote]
和并成一个datatable,也sql结果返回一个datatable,sq改一下
sxmonsy 2009-02-28
  • 打赏
  • 举报
回复
应该是数据绑定那有问题.你绑定字段和绑定数据库里的字段比较过确实没问题吗?
Terry717 2009-02-27
  • 打赏
  • 举报
回复
帮顶 !!!
CutBug 2009-02-27
  • 打赏
  • 举报
回复
给一段测试代码

页面代码:
 <form id="form1" runat="server">
<asp:ObjectDataSource runat="server" ID="objectDataSource1" TypeName="TestClass" SelectMethod="GetDS" >
</asp:ObjectDataSource>

<asp:Repeater runat="server" DataSourceID="objectDataSource1">
<ItemTemplate>
<%# Eval("a") %>
<%# Eval("b") %>这里会报错找不到b列,但是没这句,页面运行正常,显示a
</ItemTemplate>
</asp:Repeater>
</form>


App_Code里类代码:
public class TestClass
{
public DataSet GetDS()
{
DataTable dt1 = new DataTable();
dt1.Columns.Add(new DataColumn("a", typeof(string)));
DataRow row1 = dt1.NewRow();
dt1.Rows.Add(new object[] { "a" });

DataTable dt2 = new DataTable();
dt2.Columns.Add(new DataColumn("b", typeof(string)));
DataRow row2 = dt2.NewRow();
dt2.Rows.Add(new object[] { "b" });

DataSet ds = new DataSet();
ds.Tables.Add(dt1);
ds.Tables.Add(dt2);
return ds;
}
}


CutBug 2009-02-27
  • 打赏
  • 举报
回复
ObjectDataSource只能对应一个Datatable,你说的TREATMENTID不在dataset的第一个datatable里吧
wuyq11 2009-02-27
  • 打赏
  • 举报
回复
应该是关键字绑定和数据问题。
king19840811 2009-02-27
  • 打赏
  • 举报
回复
up
justincvc 2009-02-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 amandag 的回复:]
我用OBJECTDATASOURCE绑定了GRIDVIEW,但当我运行时就出了这个提示,我肯定不是少了TREATMENTID这个字段,因为我检查过数据库N次..是有的...以下贴出的是代码...请大家帮帮忙,谢谢了...数据库是ACCESS
==
不是数据库有没有的问题,而是你的GetDataset这个方法里有TREATMENTID字段么?
[/Quote]

有的...我用WATCH看过DATASET里包含了TREATMENT的表和有TREATMENTID....,我DATASET里有6个表,以下是我得到DATASET的代码...

Public Shared Function GetDataset() As DataSet

Dim ws As New EliteBeautyWS1.EliteBeautyWS
Dim ds As DataSet

ds = ws.GetData(Nothing)

Return ds

End Function
amandag 2009-02-27
  • 打赏
  • 举报
回复
我用OBJECTDATASOURCE绑定了GRIDVIEW,但当我运行时就出了这个提示,我肯定不是少了TREATMENTID这个字段,因为我检查过数据库N次..是有的...以下贴出的是代码...请大家帮帮忙,谢谢了...数据库是ACCESS
==
不是数据库有没有的问题,而是你的GetDataset这个方法里有TREATMENTID字段么?

62,052

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧