C#高级编程: 数据库的绑定[2]
By  IT  Jack 发表于 2008-2-27 14:36:00 

      public class WebForm1 : System.Web.UI.Page
       {
          ...
          protected System.Data.DataSet ds;
          protected System.Data.DataTable eventTable;
          protected System.Data.OleDb.OleDbDataAdapter daAttendees;
          protected System.Data.OleDb.OleDbDataAdapter daRooms;
          protected System.Data.OleDb.OleDbDataAdapter daEvents;

    提示:所有OLE DB对象都有SQL Server版本,它们的用法也是一样的。

    Page_Load()现在需要创建DataSet对象:
          private void Page_Load(object sender, System.EventArgs e)
          {
             oleDbConnection1.Open();
             ds = new DataSet();

    然后,必须给OleDbDataAdapter对象赋予查询和连接对象的链接:
             ds = new DataSet();
             daAttendees = new System.Data.OleDb.OleDbDataAdapter(
                               "SELECT * FROM Attendees", oleDbConnection1);
             daRooms = new System.Data.OleDb.OleDbDataAdapter(
                               "SELECT * FROM Rooms", oleDbConnection1);
             daEvents = new System.Data.OleDb.OleDbDataAdapter(
                               "SELECT * FROM Events", oleDbConnection1);

    使用Fill()调用来执行查询:
             daEvents = new System.Data.OleDb.OleDbDataAdapter(
                               "SELECT * FROM Events", oleDbConnection1);
             daAttendees.Fill(ds, "Attendees");
             daRooms.Fill(ds, "Rooms");
             daEvents.Fill(ds, "Events");

    现在进行数据绑定。如前所述,只需把绑定控件上的DataSource属性设置为要绑定的表:
             daEvents.Fill(ds, "Events");
             attendeeList.DataSource = ds.Tables["Attendees"];
             roomList.DataSource = ds.Tables["Rooms"];

    这段代码设置了属性,但数据绑定要在调用窗体的DataBind()方法之后才进行,该方法过一会儿再调用。在此之前,用Events表中的数据填充DataTable对象:
             roomList.DataSource = ds.Tables["Rooms"];
             eventTable = ds.Tables["Events"];

    如果没有回送,就只绑定数据,否则就要刷新数据(假定数据库中的这些数据在会议登记请求的过程中一直是静态的)。回送中的数据绑定也会清除roomList 和 attendeeList控件中的选择。在绑定并刷新这些数据前,应注意这些。但是,在现有的if语句中调用DataBind()会比较简单(这是该语句仍保留在打开数据连接的代码区域中的原因):
             eventTable = ds.Tables["Events"];
             if (!this.IsPostBack)
             {
                calendar.SelectedDate = System.DateTime.Now;
                this.DataBind();
             }
             oleDbConnection1.Close();
          }

    现在运行这个应用程序,从数据绑定控件中得到所有可用的参加者和会议室数据。

    注意:为了运行代码,必须在Access或Server Explorer中明确关闭任何已打开的数据库连接。为此,只需右击Server Explorer中的数据源,选择Close即可。

 
阅读全文 | 回复(0) | 引用通告 | 编辑
发表评论:

 
站点公告
站点日历
最新日志
最新评论
最新留言
友情链接
站点统计
日志搜索
用户登陆