CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

在VS2005中,从数据库绑定到Label 怎么就这么难,在线散分。。。

楼主surfpion()2006-09-14 14:02:56 在 .NET技术 / ASP.NET 提问

在CS页中:  
  this.AccessDataSource1.SelectCommand   =   "select   id   from   Table   where   sId='38'";  
  GridView1.DataSourceID   =   "AccessDataSource1";  
  GridView1.DataBind();  
  Page.DataBind();  
   
  在ASPX页中:  
  <asp:Label   ID="Label1"   runat="server"   Text='<%#     Eval("id")   %>'></asp:Label>  
   
   
  就是无数据显示出来,论坛里的绑定Label   得帖子都试过,不行,不知在VS2005如何绑定,在线请高手指点。。。 问题点数:20、回复次数:35Top

1 楼luanwey(大陆响尾蛇)(不做温水里的青蛙王子!))回复于 2006-09-14 14:09:42 得分 0

既然无数据了。。还哪来的ID啊Top

2 楼surfpion()回复于 2006-09-14 14:14:11 得分 0

如果绑定到   GridView   就会显示一条数据,但是绑定到Label   就显示不出来!Top

3 楼surfpion()回复于 2006-09-14 14:14:57 得分 0

GridView   有   datasource   而Label   怎没有Top

4 楼juedaihuaihuai(绝代坏坏(beyond myself))回复于 2006-09-14 14:18:50 得分 0

sql语句根本没有执行,怎么会有语句呀。Top

5 楼juedaihuaihuai(绝代坏坏(beyond myself))回复于 2006-09-14 14:19:22 得分 0

sql语句根本没有执行,怎么会有数据呀。  
  Top

6 楼surfpion()回复于 2006-09-14 14:22:51 得分 0

VS2005中,不知怎么写执行语句,请指点!Top

7 楼surfpion()回复于 2006-09-14 14:28:21 得分 0

在VS2003中有执行语句,而在VS2005中好像没找到什么可执行的语句Top

8 楼juedaihuaihuai(绝代坏坏(beyond myself))回复于 2006-09-14 14:34:45 得分 0

 
  session["selectedID"]="select   id   from   Table   where   sId='38'";  
  this.AccessDataSource1.SelectCommand   =Session["SelectedId"].ToStirng();    
  GridView1.DataSourceID   =   "AccessDataSource1";  
  GridView1.DataBind();  
  Page.DataBind();  
  Top

9 楼surfpion()回复于 2006-09-14 14:43:10 得分 0

数据没有显示出来,在在ASPX页中,要不要改点什么呢?  
  <asp:Label   ID="Label1"   runat="server"   Text='<%#     Eval("id")   %>'></asp:Label>Top

10 楼zhangzengping(问题到此解决!)回复于 2006-09-14 14:47:14 得分 2

 
   
  <asp:Label   ID="Label1"   runat="server"   Text='<%#ViewState["名字"]%>'></asp:Label>  
   
  or     <&#函数()&>  
   
  public   string   函数   ()  
  {  
        get  
  {  
          return   ds.table[0].row[0][0].toString();  
  }  
   
   
  }Top

11 楼juedaihuaihuai(绝代坏坏(beyond myself))回复于 2006-09-14 14:47:33 得分 0

还不行么?debug一下,看看AccessDataSource1.SelectCommand的value是不是空的。把结果贴上来。Top

12 楼surfpion()回复于 2006-09-14 14:57:32 得分 0

juedaihuaihuai(绝代坏坏)   :非常感谢你的答复!显示不是空的!相同的语句<asp:Label   ID="Label1"   runat="server"   Text='<%#     Eval("id")   %>'></asp:Label>,在GridView1的Label,显示了一条数据记录,在Page的Label   则什么都没有显示出来Top

13 楼kbxj406(羽儿)回复于 2006-09-14 15:01:14 得分 0

Text='<%#     Eval("id")   %>'  
  能编译成功吗???  
   
  eval函数不是需要2个参数吗??Top

14 楼kbxj406(羽儿)回复于 2006-09-14 15:03:24 得分 1

Text='<%#     Eval("id")   %>'  
  改为  
  Text='<%#   DataBinder.Eval(Container.DataItem,   "id")%>'  
  Top

15 楼surfpion()回复于 2006-09-14 15:07:40 得分 0

kbxj406(羽儿)   :   你好!  
   
  在   VS2003   Text='<%#   DataBinder.Eval(Container.DataItem,   "id")%>'   这条语句是对的!  
  在   VS2005   Text='<%#     Eval("id")   %>'   这样用是对的!  
  Top

16 楼juedaihuaihuai(绝代坏坏(beyond myself))回复于 2006-09-14 15:10:46 得分 2

如果你只有一条数据要帮定,可以在后台这样实现  
  while(dr.reader())  
  {  
    lblid=dr["id"];  
  }  
  Top

17 楼surfpion()回复于 2006-09-14 15:36:46 得分 0

dr.reader   在VS2005   中完整的怎么写Top

18 楼surfpion()回复于 2006-09-14 16:09:31 得分 0

dr.reader   在VS2003我会写,但在VS2005就不知道怎么写了Top

19 楼surfpion()回复于 2006-09-14 17:29:55 得分 0

问题看似简单,立了三个主题,都无结果,请孟子和星星多的高手显身Top

20 楼odin223()回复于 2006-09-14 17:55:33 得分 0

upTop

21 楼superman_yc(心有灵犀)回复于 2006-09-14 18:00:41 得分 0

关注,我的也是这个问题...郁闷,2天了Top

22 楼surfpion()回复于 2006-09-14 18:18:18 得分 0

相同的语句  
  <asp:Label   ID="Label1"   runat="server"   Text='<%#     Eval("id")   %>'></asp:Label>,  
   
  在GridView1的Label,显示了一条数据记录,在Page的Label   则什么都没有显示出来,整整在线一  
   
  天了,大侠们指点一下。。  
  Top

23 楼hanchi8008(寒池)回复于 2006-09-14 19:24:41 得分 2

<asp:Label   ID="Label1"   runat="server"   Text='<%#   Bind("id")   %>'></asp:Label>  
   
  即可Top

24 楼wcj86009(不懂就问)回复于 2006-09-14 20:01:02 得分 0

jfTop

25 楼wcj86009(不懂就问)回复于 2006-09-14 20:07:45 得分 0

顶Top

26 楼zeng_c_h(不喜欢Coding的程序员)回复于 2006-09-14 20:13:31 得分 2

麻煩一點﹐保証行。  
  先用SQL語句﹐查詢后把結果保存到某屬性﹐如TheID,前台用<%#   this.TheID   %>綁帶﹐OK﹗Top

27 楼surfpion()回复于 2006-09-14 23:55:09 得分 0

1。   Bind("id")   和Eval("id")   略有区别,用在这里还是数据显示不出来;  
   
  2。   在VS2005中,<%#   this.TheID   %>也不对,调试都过不去,改为<%=   this.TheID   %>调试过  
   
  去,但仍然内容没有显示出来  
   
  Top

28 楼net_lover(【孟子E章】)回复于 2006-09-15 00:30:31 得分 10

你这是属于典型的基本概念不了解的问题。  
  建议先看看基本的asp.net   2.0的知识  
   
   
  使用   Eval   方法  
  Eval   方法可计算数据绑定控件(如   GridView、DetailsView   和   FormView   控件)的模板中的后期绑定数据表达式。在运行时,Eval   方法调用   DataBinder   对象的   Eval   方法,同时引用命名容器的当前数据项。命名容器通常是包含完整记录的数据绑定控件的最小组成部分,如   GridView   控件中的一行。因此,只能对数据绑定控件的模板内的绑定使用   Eval   方法。  
   
  Eval   方法以数据字段的名称作为参数,从数据源的当前记录返回一个包含该字段值的字符串。可以提供第二个参数来指定返回字符串的格式,该参数为可选参数。字符串格式参数使用为   String   类的   Format   方法定义的语法。  
   
   
   
  你既然是要绑定   数据库中的id,而数据库的数据只是为GridView提供的,你的Label控件放在   GridView中的了吗??GridView之外没有任何与数据记录有关系的可操作的东西,当然是不能绑定的。  
   
  dr.reader   在VS2003我会写,但在VS2005就不知道怎么写了??  
  这个没有任何区别,不知道你2003里怎么写出来的  
   
   
   
  Bind("id")   和Eval("id")   略有区别?  
  区别就是双向绑定(可修改)与单向绑定的区别  
   
   
  在VS2005中,<%#   this.TheID   %>也不对,调试都过不去,改为<%=   this.TheID   %>调试过  
   
  去,但仍然内容没有显示出来??  
   
  显然是概念不清楚,DataBind方法是每个控件都有的,你调用一下即可  
   
   
  这些概念在我的书中都有明确的介绍,如果你愿意,可以买本看看。  
   
  怎么写?下面就是例子  
   
  <body>  
      <form   id="form1"   runat="server">  
          <asp:Label   ID="Label1"   runat="server"   Text='<%#   name%>'></asp:Label>  
      </form>  
  </body>  
   
   
  cs:  
   
  public   partial   class   DataBind   :   System.Web.UI.Page  
  {  
      protected   string   name;  
      protected   void   Page_Load(object   sender,   EventArgs   e)  
      {  
          name   =   "孟宪会";  
          Label1.DataBind();  
   
      }  
  }  
   
   
  如果你的要绑定的控件很多,可以直接使用一个  
  Page.DataBind();  
   
   
  如果有分组,可以使用分组的控件的.DataBind();  
   
  Top

29 楼bonnie168(虚拟过客.net)回复于 2006-09-15 08:51:24 得分 0

goodTop

30 楼test33(隐姓埋名)回复于 2006-09-15 09:53:57 得分 0

奥`有点不明白也`  
  Top

31 楼surfpion()回复于 2006-09-15 10:14:16 得分 0

老孟真是良师益友,详细的要点讲解,此题已解!不知何处可买到老孟的书,书名?准备结贴。。。Top

32 楼odin223()回复于 2006-09-15 11:45:57 得分 0

upTop

33 楼surfpion()回复于 2006-09-15 20:19:42 得分 0

下面方法也可将数据从后台传到前台:  
                  OleDbConnection   connlblMain   =   new   OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data   Source="   +   this.Server.MapPath("lib")   +   "\\ABC.MDB");  
                  OleDbCommand   cmdlblMain   =   new   OleDbCommand("select   id   from   Table   where   sId=38",   connlblMain);  
   
                  connlblMain.Open();  
                  OleDbDataReader   rdrlblMain   =   cmdlblMain.ExecuteReader();  
   
                  while   (rdrlblMain.Read())  
                  {  
                          Label1.Text   =   rdrlblMain["id"].ToString();  
                  }  
   
                  rdrlblMain.Close();  
                  connlblMain.Close();Top

34 楼surfpion()回复于 2006-09-15 20:21:51 得分 0

用这个控件AccessDataSource1很难对数据库操作,如读记录、数据库关闭等操作。。。Top

35 楼Allen2064(炊烟草民)回复于 2006-09-15 21:04:46 得分 1

vs2005中    
  Text='<%#   DataBinder.Eval(Container,   "id")%>'  
  Top

相关问题

关键词

得分解答快速导航

  • 帖主:surfpion
  • zhangzengping
  • kbxj406
  • juedaihuaihuai
  • hanchi8008
  • zeng_c_h
  • net_lover
  • Allen2064

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo