CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

一个 "疑问" , 纳闷 !

楼主lypdk()2002-05-21 02:42:34 在 .NET技术 / ASP.NET 提问

<%@   Import   Namespace="System.Data"   %>  
  <%@   Import   Namespace="System.Data.SqlClient"   %>  
  <html>  
  <script   language="C#"   runat="server">  
  public   void   Search_Click(Object   sender,   EventArgs   E)    
  {          
        //   连接到本地计算机的eShops数据库  
        SqlConnection   cn=new   SqlConnection("Data   Source=localhost;"   +  
                                  "Integrated   Security=SSPI;Initial   Catalog=eShops");  
        //   构造SQL语句,该语句用于查询某个客户的订购情况  
        String   strSQL="select   Orders.OrderId,ProductName,Qty,Price   "+  
                    "from   Customers,Orders,Products   "+  
                    "where   CustName=@CustName   and   Customers.CustId=Orders.CustId   "+  
                    "and   Orders.ProductId=Products.ProductId   "+  
                    "order   by   Orders.Orderid";  
        //   创建Command对象cm  
        SqlCommand   cm=new   SqlCommand(strSQL,cn);  
        //   添加一个参数  
        cm.Parameters.Add(new   SqlParameter("@CustName",SqlDbType.NVarChar,12));  
        //   给参数赋值  
        cm.Parameters["@CustName"].Value=CustName.Text;                
        //   打开连接  
        cn.Open();  
        //   执行ExecuteReader()方法  
        SqlDataReader   dr=cm.ExecuteReader();  
        //   将DataReader对象绑定到DataGrid控件  
  *********     问题在这     *************************************  
        dgCust.DataSource=dr;  
        dgCust.DataBind();  
  **********************************************************  
   
        //   关闭连接  
        cn.Close();  
  }  
  </script>  
   
  我的问题:  
    dgCust   不用先声明的吗   ?  
   
  -----------------------------  
  也是以上例子里的   ,   这里就有   NEW   一个   ?  
  //   创建Command对象cm  
  SqlCommand   cm=new   SqlCommand(strSQL,cn);  
  问题点数:20、回复次数:12Top

1 楼yunhi()回复于 2002-05-21 04:34:05 得分 0

你的问题:  
    //   将DataReader对象绑定到DataGrid控件  
  *********     问题在这     *************************************  
        dgCust.DataSource=dr;  
        dgCust.DataBind();  
  **********************************************************  
  这里需要的是DataSet;你要新建一个   SqlDataAdapter对象,然后调用它的Fill方法填充DataSet。  
   
  dgCust   不用先声明的吗   ?  
  因为在你的页面里你不是已经定义了一个DataGrid控件dgCust嘛。  
   
   
  Top

2 楼saucer(思归)回复于 2002-05-21 04:53:46 得分 0

1.   you   are   using   SqlDataReader   as   the   data   source   for   the   datagrid,   no   need   for   a   SqlDataAdapter  
   
  2.   dgCust   is   defined   here:  
  <datagrid   id="dgCust"   runat="server">Top

3 楼lypdk()回复于 2002-05-21 22:32:28 得分 0

TO:   yunhi(yunhi)    
   
        我没有定义呀   ?   所有的语句都在上面了   ,   没有呀   。  
  Top

4 楼mmkk()回复于 2002-05-21 22:40:44 得分 0

dgCust并不是不要声明,应该是DataGrid控件的ID,如果没有这个ID,编译肯定会报错,不可能通过的Top

5 楼yunhi()回复于 2002-05-21 23:33:33 得分 0

如果你的程序编译通过的话,你不可能没有定义的呀,那你的dgCust从哪里来?它又何来DataGrid类的DataSource属性和DataBind()方法?Top

6 楼windfun(小宝.NET)回复于 2002-05-21 23:39:02 得分 0

dgCust是DataGird控件的ID,你应该还有代码没贴出来,控件ID在页面代码是不用声明的Top

7 楼lypdk()回复于 2002-05-22 02:26:17 得分 0

全部的代码:  
   
  <%@   Import   Namespace="System.Data"   %>  
  <%@   Import   Namespace="System.Data.SqlClient"   %>  
  <html>  
  <script   language="C#"   runat="server">  
  public   void   Search_Click(Object   sender,   EventArgs   E)    
  {          
        //   连接到本地计算机的eShops数据库  
        SqlConnection   cn=new   SqlConnection("Data   Source=localhost;"   +  
                                  "Integrated   Security=SSPI;Initial   Catalog=eShops");  
        //   构造SQL语句,该语句用于查询某个客户的订购情况  
        String   strSQL="select   Orders.OrderId,ProductName,Qty,Price   "+  
                    "from   Customers,Orders,Products   "+  
                    "where   CustName=@CustName   and   Customers.CustId=Orders.CustId   "+  
                    "and   Orders.ProductId=Products.ProductId   "+  
                    "order   by   Orders.Orderid";  
        //   创建Command对象cm  
        SqlCommand   cm=new   SqlCommand(strSQL,cn);  
        //   添加一个参数  
        cm.Parameters.Add(new   SqlParameter("@CustName",SqlDbType.NVarChar,12));  
        //   给参数赋值  
        cm.Parameters["@CustName"].Value=CustName.Text;                
        //   打开连接  
        cn.Open();  
        //   执行ExecuteReader()方法  
        SqlDataReader   dr=cm.ExecuteReader();  
        //   将DataReader对象绑定到DataGrid控件  
        dgCust.DataSource=dr;  
        dgCust.DataBind();  
        //   关闭连接  
        cn.Close();  
  }  
  </script>  
  <body   style="font:   10pt   verdana">  
  <form   runat="server">  
  客户名:  
  <asp:TextBox   id="CustName"   runat="server"   />  
  <asp:RequiredFieldValidator   id="RFV"    
                ControlTOValidate="CustName"  
                Display="dynamic"   runat="server">*  
  </asp:RequiredFieldValidator>  
  <asp:Button   text="查询"   OnClick="Search_Click"   runat="server"   />  
  <br><br>  
  <asp:DataGrid   id="dgCust"   runat="server"  
              Width="700"   BackColor="#ccccff"    
              BorderColor="black"   ShowFooter="false"    
              CellPadding=3   CellSpacing="0"  
              Font-Name="Verdana"   Font-Size="8pt"  
              HeaderStyle-BackColor="#aaaadd"  
              AutoGenerateColumns="false"  
              MaintainState="false">  
      <Columns>  
              <asp:BoundColumn   HeaderText="订单号"   DataField="OrderId"   />  
              <asp:BoundColumn   HeaderText="产品名"   DataField="ProductName"   />  
              <asp:BoundColumn   HeaderText="数量"   DataField="Qty"   />  
              <asp:BoundColumn   HeaderText="单价(元)"   DataField="Price"   />  
      </Columns>  
  </asp:DataGrid>  
  </form>  
  </body>  
  </html>Top

8 楼OMyDoG(-:)回复于 2002-05-22 08:11:01 得分 0

<asp:DataGrid   id="dgCust"   runat="server"  
   
  ///////////这里就定义了id="dgCust"了Top

9 楼yunhi()回复于 2002-05-22 09:42:46 得分 0

<asp:DataGrid   id="dgCust"   runat="server"  
  ......  
  </asp:DataGrid>  
  这段code不就是定义了一个ID号为dgCust的DataGrid控件嘛。Top

10 楼lypdk()回复于 2002-05-22 11:43:57 得分 0

啊   !  
   
  申明在调用之后   ?     不用先声明的吗   ?Top

11 楼renewdbh(小胖)回复于 2002-05-22 17:37:28 得分 0

程序先执行<body></body>中的代码,后执行<script></script>Top

12 楼renewdbh(小胖)回复于 2002-05-22 17:49:00 得分 20

你若将前台界面与后台代码分离,那就很容易明白啦Top

相关问题

  • 纳闷
  • 纳闷!!:(
  • 疑问
  • 疑问?
  • 疑问
  • 疑问
  • 疑问
  • !!!!疑问
  • 疑问??
  • 纳闷!!!关于dbgrid!!!

关键词

  • 控件
  • 代码
  • datagrid
  • dgcust
  • 声明
  • 对象
  • 问题
  • 没有

得分解答快速导航

  • 帖主:lypdk
  • renewdbh

相关链接

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

广告也精彩

反馈

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