标题:GridView的绑定数据源(使用三层架构来做)
只看楼主
白色的天
Rank: 2
等 级:论坛游民
帖 子:24
专家分:17
注 册:2013-11-9
结帖率:80%
已结贴  问题点数:38 回复次数:5 
GridView的绑定数据源(使用三层架构来做)
首先我是定义了一个实体类,代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Model
{
   public class Room
    {
   
        private int RoomID;

public int RoomID1
{
  get { return RoomID; }
  set { RoomID = value; }
}
        private string Number;

public string Number1
{
  get { return Number; }
  set { Number = value; }
}
        private int TypeID;

public int TypeID1
{
  get { return TypeID; }
  set { TypeID = value; }
}
        private int BedNumber;

public int BedNumber1
{
  get { return BedNumber; }
  set { BedNumber = value; }
}
        private string Description;

public string Description1
{
  get { return Description; }
  set { Description = value; }
}
        private string State;

public string State1
{
  get { return State; }
  set { State = value; }
}
        private int GuestNumber;

public int GuestNumber1
{
  get { return GuestNumber; }
  set { GuestNumber = value; }
}

      

    }
}
然后我在数据访问层里定义了一个数据访问公共类DBHelper和一个方法
 public static class DBHelper
    {
        private static SqlConnection connection;
        public static SqlConnection Connection
        {
            get
            {
                string connectionString = ConfigurationManager.ConnectionStrings["DBConnStr"].ConnectionString;
                if (connection == null)//如果连接就状态不存在,就创建一个连接对象并打开连接
                {
                    connection = new SqlConnection(connectionString);
                    connection.Open();
                }
                else if (connection.State == System.Data.ConnectionState.Closed)//如果连接状态是关闭,就打开连接,
                {
                    connection.Open();
                }
                else if (connection.State == System.Data.ConnectionState.Broken)//如果连接状态中断了,就先关闭连接,再打开连接。
                {
                    connection.Close();
                    connection.Open();
                }
                return connection;
            }
        }
   //创建一个SqlDataReader对象
        //strSqlCommandSQL语句
        //返回SqlDataReader对象
        public static SqlDataReader getRead(string strSqlCommand)
        {
            SqlConnection sqlcon = DBHelper.Connection;//调用了上面一个静态成员的封装属性,只能用类名来调用成员或成员的属性
            SqlDataReader sqlread;
            
               
                //实例化一个SqlCommand对象  
                SqlCommand sqlcom = new SqlCommand(strSqlCommand, sqlcon);
                //ExecuteReader创建SqlDataReader类对象,CommandBehavior .  
                //CloseConnection说明在关闭SqlDataReader对象的时候,关闭其关联的SqlConnection对象  
                sqlread = sqlcom.ExecuteReader(CommandBehavior.CloseConnection);
           
            return sqlread;
        }
因为是我做酒店系统,我想查看房间,所以我在数据访问层里添加了一个房间类,代码:
//功能描述:提供客房信息数据访问
    public static class RoomService
    {
        public static string SelectCommand()
       {

           string sql="select * from Room";
           SqlDataReader red = DBHelper.getRead(sql);
           if(red.Read())
           {
               Room room = new Room();
               room.RoomID1 = Convert.ToInt32(red["RoomID"]);
               room.TypeID1 = Convert.ToInt32(red["TypeID"]);
               room.Number1 = Convert.ToString(red["Number"]);
               room.State1 = Convert.ToString(red["State"]);
               room.Description1 = Convert.ToString(red["Description"]);
               room.BedNumber1 = Convert.ToInt32(red["BedNumber"]);
               room.GuestNumber1 = Convert.ToInt32(red["GuestNumber"]);
            

           }
     
         
               

       }
我想通过GridView来呈现出查看房间,所以我在GridView的加载事件里打了如下代码
protected void GridView1_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            GridView1.DataSource =RoomService.SelectCommand();
        }
      
    }
最后我在GridView1绑定了一个字段,但是显示不出来,求指导啊,我才第一学期学习了,现在要把C#和结合起来,用三层架构做不会啊,求教。
GridView代码如下
<asp:GridView ID="GridView1" runat="server" AllowPaging="True"
        AutoGenerateColumns="False" DataKeyNames="RoomID" PageSize="17" Width="98%"
        Height="243px" onload="GridView1_Load">
        <Columns>
            <asp:BoundField DataField="Number" HeaderText="房间号" />
            <asp:TemplateField HeaderText="客房类型">
                <ItemTemplate>
                    <asp:Label ID="Label1" runat="server" ></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:BoundField HeaderText="床位数" />
            <asp:BoundField HeaderText="客人数" />
            <asp:TemplateField HeaderText="状态">
                <ItemTemplate>
                    <asp:Label ID="Label2" runat="server"></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="描述">
                <ItemTemplate>
                    <asp:Label ID="Label3" runat="server"></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:ImageButton ID="ImageButton1" runat="server"
                        ImageUrl="~/images/edit.gif" />
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:ImageButton ID="ImageButton2" runat="server"
                        ImageUrl="~/images/delete.gif" />
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
搜索更多相关主题的帖子: private public return 数据源 
2014-01-03 15:57
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2545
专家分:9359
注 册:2007-11-3
得分:27 
        <asp:BoundField DataField="Number1" HeaderText="房间号" /> 绑定的是实体类

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2014-01-04 10:39
白色的天
Rank: 2
等 级:论坛游民
帖 子:24
专家分:17
注 册:2013-11-9
得分:0 
回复 2楼 wangnannan
我这样绑定了,但是显示不了,可能代码有错,但我实在能力有限,谢谢你
2014-01-04 16:28
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2545
专家分:9359
注 册:2007-11-3
得分:0 
你可以简单上传个例子 帮你看看是哪里出了问题

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2014-01-06 16:14
yms123
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
得分:0 
不建议这样绑定因为数据量大的时候,这样效率很低
2014-01-15 10:43
AlexXu
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2012-9-27
得分:0 
绑定数据源后还要GridView1.DataBind()一下吧
2014-02-07 10:12



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-426077-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.102097 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved