注册 登录
编程论坛 ASP.NET技术论坛

求助各位gridview和sqldatasource的问题[em06]

qq34370566 发布于 2007-08-02 15:20, 883 次点击

基本表里面有四列,分别是编号,姓名,国家,年龄
gridview起初的datasourceid选择的是sqldatasource1
于是就显示了有四列的表格
然后查询语句写在button控件中为
SqlDataSource1.SelectCommand = "SELECT DISTINCT 编号 FROM 信息 WHERE(年龄 >= 30)";
结果运行后点击button好像不能查询一列的数据似的。总是出现如下错误
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
在选定的数据源上未找到名为“姓名”的字段或属性。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Web.HttpException: 在选定的数据源上未找到名为“姓名”的字段或属性。

源错误:

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。

堆栈跟踪:


[HttpException (0x80004005): 在选定的数据源上未找到名为“姓名”的字段或属性。]
System.Web.UI.WebControls.BoundField.GetValue(Control controlContainer) +406
System.Web.UI.WebControls.BoundField.OnDataBindField(Object sender, EventArgs e) +118
System.Web.UI.Control.OnDataBinding(EventArgs e) +88
System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) +167
System.Web.UI.Control.DataBind() +31
System.Web.UI.Control.DataBindChildren() +236
System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) +178
System.Web.UI.Control.DataBind() +31

我是一个初学者,什么都不懂,麻烦各位帮帮忙。

9 回复
#2
冰彩虹2007-08-02 15:52
楼主,仔细看看
SqlDataSource1.SelectCommand = "SELECT DISTINCT 编号 FROM 信息 WHERE(年龄 >= 30)";

选出来的有“姓名”字段嘛?
#3
qq343705662007-08-02 16:04
搞错了,我的意思就是选择一行的时候出不了结果。
这是为什么
#4
sean882007-08-02 16:05
可以用过滤的方法来实现

[此贴子已经被作者于2007-8-2 16:06:58编辑过]


#5
qq343705662007-08-02 16:10
请问如何用过滤方法实现呢?谢谢了~
#6
sean882007-08-02 16:17
或者你直接写完整的SQL.

SqlDataSource1.SelectCommand = "SELECT DISTINCT 编号,姓名,国家,年龄 FROM 信息 WHERE(年龄 >= 30)";
#7
sean882007-08-02 16:23
以下是引用qq34370566在2007-8-2 16:10:31的发言:
请问如何用过滤方法实现呢?谢谢了~

在按钮事件里写
SqlDataSource1.FilterExpression = "年龄 >= 30";

#8
qq343705662007-08-02 16:31
可是我只是想显示出编号这一列就好

因为如果全部列都显示就没问题,只显示一列就有问题
#9
冰彩虹2007-08-02 18:27
在按钮事件里写
SqlDataSource1.FilterExpression = "年龄 >= 30";

同时把你不想看见的GridView列的Visiable设置为false
#10
jyoseyi2007-08-03 10:28

在编辑列中 删除错误提示中的列 ,你只要编号,就只保留编号,其他删除

1