DataBinding:“System.Data.DataRowView”不包含名为“zh_Staff_1”的属性。--------在线等

jacky00yyp 2008-08-06 08:37:58
DataBinding:“System.Data.DataRowView”不包含名为“zh_Staff_1”的属性。
一个关联表,其中一个表A和同一个表zh_Staff关联两次

<asp:BoundField DataField="zh_Staff.Staff_name" HeaderText="制单人">
<ItemStyle HorizontalAlign="Center" Width="60px" />
<HeaderStyle HorizontalAlign="Center" Width="60px" />
</asp:BoundField>


GridView中用了一个按钮,为什么上面那样可以,这个就不行
<asp:LinkButton ID="LinkButton1" runat="server" Text='<%# Eval("zh_Staff_1.Staff_name") %>' CommandArgument='<%# Eval("Supplier") %>' OnClick="LinkButton1_Click"></asp:LinkButton>
...全文
1106 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
micone 2008-08-28
  • 打赏
  • 举报
回复
可能你用的是sqlcommand语句造成的冲突,改成sqlAdapter+dataset的组合说不定问题就解决了..
jacky00yyp 2008-08-06
  • 打赏
  • 举报
回复
那有没办法让 Eval("zh_Staff_1.Staff_name") 可以呢
DataRowView[zh_Staff_1.Staff_name]
Smile_Wong1 2008-08-06
  • 打赏
  • 举报
回复
也就是说:
<asp:BoundField DataField="zh_Staff.Staff_name" HeaderText="制单人">
意味着,该列的数据为:DataRowView["zh_Staff.Staff_name "]

而<%# Eval("zh_Staff_1.Staff_name") %>
为:DataRowView.zh_Staff_1.Staff_name
Smile_Wong1 2008-08-06
  • 打赏
  • 举报
回复
<asp:BoundField DataField="zh_Staff.Staff_name" HeaderText="制单人">
<ItemStyle HorizontalAlign="Center" Width="60px" />
<HeaderStyle HorizontalAlign="Center" Width="60px" />
</asp:BoundField>
这里用zh_Staff.Staff_name ,会被作为DataTable的字段名


Eval("zh_Staff_1.Staff_name")
这里的zh_Staff_1.Staff_name 不是被当作 DataRowView["zh_Staff_1.Staff_name "]来使用
而是被当作DataRowView.zh_Staff_1.Staff_name 来使用了,所以出错了
jacky00yyp 2008-08-06
  • 打赏
  • 举报
回复
别名我会用啊,
我是想问为什么
<asp:BoundField DataField="zh_Staff.Staff_name" HeaderText="制单人">
<ItemStyle HorizontalAlign="Center" Width="60px" />
<HeaderStyle HorizontalAlign="Center" Width="60px" />
</asp:BoundField>




为什么上面那样可以,这个就不行

<asp:LinkButton ID="LinkButton1" runat="server" Text='<%# Eval("zh_Staff_1.Staff_name") %>' CommandArgument='<%# Eval("Supplier") %>' OnClick="LinkButton1_Click"></asp:LinkButton>


Smile_Wong1 2008-08-06
  • 打赏
  • 举报
回复
既然是同一个Staff_name,又何必写两次,如果要写两次,应该给zh_Staff_1.Staff_name一个别名 as Staff_name1 啊
变通的方法有很多,又何必执拗于代码上呢。本身你这样写SQL语句就有问题,搜索出来的表里本来就不应该有同名的字段
jacky00yyp 2008-08-06
  • 打赏
  • 举报
回复
SELECT zh_ccgl_scll_main.id, zh_ccgl_scll_main.billcode, zh_ccgl_scll_main.billdate, zh_ccgl_scll_main.billmade, zh_Staff.Staff_name, zh_ccgl_scll_main.handle, zh_Staff_1.Staff_name, zh_ccgl_scll_main.other
FROM zh_Staff AS zh_Staff_1 INNER JOIN (zh_Staff INNER JOIN zh_ccgl_scll_main ON zh_Staff.id = zh_ccgl_scll_main.billmade) ON zh_Staff_1.id = zh_ccgl_scll_main.handle;
jacky00yyp 2008-08-06
  • 打赏
  • 举报
回复
我是有个表里面有个Staff_name属性,然后A表关联时候,关联了两次那个表里的Staff_name
Smile_Wong1 2008-08-06
  • 打赏
  • 举报
回复
<asp:LinkButton ID="LinkButton1" runat="server" Text='<%# Eval("Staff_name") %>' CommandArgument='<%# Eval("Supplier") %>' OnClick="LinkButton1_Click"></asp:LinkButton>

直接这样写不可以吗?
jacky00yyp 2008-08-06
  • 打赏
  • 举报
回复
<asp:BoundField DataField="zh_Staff.Staff_name" HeaderText="制单人">
<ItemStyle HorizontalAlign="Center" Width="60px" />
<HeaderStyle HorizontalAlign="Center" Width="60px" />
</asp:BoundField>
这个可以我知道啊,但是我需要在
GridView里的控件中获取
<asp:LinkButton ID="LinkButton1" runat="server" Text='<%# Eval("zh_Staff_1.Staff_name") %>' CommandArgument='<%# Eval("Supplier") %>' OnClick="LinkButton1_Click"></asp:LinkButton>
chinawes 2008-08-06
  • 打赏
  • 举报
回复

<asp:BoundField DataField="Staff_name" HeaderText="制单人">
chinawes 2008-08-06
  • 打赏
  • 举报
回复

<asp:BoundField DataField="zh_Staff.Staff_name" HeaderText="制单人">
<ItemStyle HorizontalAlign="Center" Width="60px" />
<HeaderStyle HorizontalAlign="Center" Width="60px" />
</asp:BoundField>

红色的地方错误了,直接写查询结果显示的字段名

<asp:BoundField DataField="Staff_name" HeaderText="制单人">
fuda_1985 2008-08-06
  • 打赏
  • 举报
回复
'<%# Eval("Number").ToString() %>'
看看这样行不!
fuda_1985 2008-08-06
  • 打赏
  • 举报
回复
Eval("zh_Staff_1.Staff_name")
这个东西不是这样写吧?
liumang945 2008-08-06
  • 打赏
  • 举报
回复
up
ljqingas 2008-08-06
  • 打赏
  • 举报
回复
那得看看你的Sql语句了啊!
确认数据字段没有错啊?
Smile_Wong1 2008-08-06
  • 打赏
  • 举报
回复
哦,那你这个zh_Staff_1是什么来的?
不可以<%# Eval("Staff_name") %>这样吗?
就我所知Eval("字段名"),中间填的是字段名啊。我一直都是这样用的,没有试过 "zh_Staff_1.Staff_name"这样的用法
jacky00yyp 2008-08-06
  • 打赏
  • 举报
回复
<asp:BoundField DataField="zh_Staff_1.Staff_name" HeaderText="人">
<ItemStyle HorizontalAlign="Center" Width="60px" />
<HeaderStyle HorizontalAlign="Center" Width="60px" />
</asp:BoundField>
这个也可以啊
就是用<%# Eval("zh_Staff_1.Staff_name") %>出错
jacky00yyp 2008-08-06
  • 打赏
  • 举报
回复
select * from zh_ccgl_scll_main_show
Smile_Wong1 2008-08-06
  • 打赏
  • 举报
回复
zh_Staff.Staff_name
zh_Staff_1.Staff_name 这两个就不一样啊
可以看看你的sql语句吗?

62,046

社区成员

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

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

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

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