蛙蛙推荐:asp.net中基础的数据库演练代码

原创 2004年07月08日 12:07:00

蛙蛙推荐:asp.net中基础的数据库演练代码
每种编程语言的数据库操作方法和对数据库操作的能力是不一样的,能熟练掌握asp.net的数据库操作是每个新手所首先要掌握的,本文通过一个简单的例子来给大家展现asp.net下丰富的数据库操作类,本例演示了DataGrid的数据库绑定,排序,分页,还有DataSet,DataView,DataReader等的简单使用,虽然简单,但足以证明asp.net下数据库访问概念的变化,例子中有好多BUG,大家在实际应用的时候要注意一下,比如说在打开数据库的时候用结构化的错误处理语句来捕捉可能的错误,要显式的关闭数据库等等;本文没有写出这些语句式为了让读者的注意力集中在数据库的操作上.代码中没有做过多的注释,是为了让程序显得更加紧凑
还有就是推荐新手不要老靠VS.NET等可视化编程工具来写ASP.NET,要多用一些文本编辑器来做一些常规的C#脚本联系,代码中如果有一些问题,或者你对本文有所什么看法,欢迎和我交流,谢谢
下面是源代码,把两个文件保存到同一个目录,然后通过访问wawa.aspx就可以了,前提是你配置好了sqlser并且安装了示例数据库,另外数据库的连接字符串中用户和密码的地方也可能需要你修改一下:


wawa.aspx


以下是引用片段:
<%@ Page language="c#" src="wawa.aspx.cs" Inherits="wawa.song" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
 <HEAD>
  <title>song</title>
  <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
  <meta name="CODE_LANGUAGE" Content="C#">
  <meta name="vs_defaultClientScript" content="JavaScript">
  <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
 </HEAD>
 <body MS_POSITIONING="GridLayout">
  <form id="Form1" method="post" runat="server">
   <FONT face="宋体">
    <TABLE id="Table1" style="Z-INDEX: 104; LEFT: 160px; POSITION: absolute; TOP: 56px" cellSpacing="1"
     cellPadding="1" width="300" border="1">
     <TR>
      <TD>
       <asp:Label id="Label2" runat="server" Font-Bold="True">这是个用DataReader和StringBuilder的例子</asp:Label></TD>
     </TR>
     <TR>
      <TD>
       <asp:Literal id="HtmlContent" runat="server"></asp:Literal></TD>
     </TR>
     <TR>
      <TD>
       <asp:Label id="Label1" runat="server" Font-Bold="True">这是个绑定到DataGrid并实现排序的例子</asp:Label></TD>
     </TR>
     <TR>
      <TD>
       <asp:DataGrid id="DataGrid1" runat="server" AllowSorting="True">
        <Columns>
         <asp:BoundColumn></asp:BoundColumn>
        </Columns>
       </asp:DataGrid></TD>
     </TR>
     <TR>
      <TD>
       <asp:Label id="Label3" runat="server">这是个用DataGrid分页的例子</asp:Label></TD>
     </TR>
     <TR>
      <TD>
       <asp:DataGrid id="DataGrid2" runat="server" PageSize="2" AllowPaging="True">
        <PagerStyle NextPageText="下一页" PrevPageText="上一页"></PagerStyle>
       </asp:DataGrid></TD>
     </TR>
    </TABLE>
   </FONT>
  </form>
 </body>
</HTML>
 


wawa.aspx.cs
以下是引用片段:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Text;
namespace wawa
{
 public class song : System.Web.UI.Page
 {
  protected System.Web.UI.WebControls.Literal HtmlContent;
  protected System.Web.UI.WebControls.Label Label1;
  protected System.Web.UI.WebControls.Label Label2;
  protected System.Web.UI.WebControls.Label Label3;
  protected System.Web.UI.WebControls.DataGrid DataGrid2;
  protected System.Web.UI.WebControls.DataGrid DataGrid1;
  protected DataView view1=new DataView();
  protected SqlCommand cmd =new SqlCommand();
  private void Page_Load(object sender, System.EventArgs e)
  {
  opendb();
  showreader();
  DataGrid1_Bind();
  DataGrid2_Bind();
  }
  #region Web 窗体设计器生成的代码
  override protected void OnInit(EventArgs e)
  {
   //覆盖System.Web.UI.Page类的OnInt事件
   InitializeComponent(); //调用InitializeComponent()函数
   base.OnInit(e); //调用父类的Oninit方法初始化本事件
  }
  private void InitializeComponent()
  {   
   //连接一些事件
   this.DataGrid1.SortCommand += new System.Web.UI.WebControls.DataGridSortCommandEventHandler(this.DataGrid1_SortCommand);
   this.DataGrid2.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.DataGrid2_PageIndexChanged);
   this.Load += new System.EventHandler(this.Page_Load);

  }
  #endregion

  private void opendb(){
   //打开数据库,创建一个SqlDataReader:reader,一个SqlDataAdapter:da,一个DataSet:ds,用da填充ds的Employees表里,
   //并且把Employees表的默认视图赋值给私有视图变量view1
   string connString="server=192.168.0.110;database=Northwind;uid=sa;pwd=sa;";
   string sql=@"SELECT TOP 5 EmployeeID,TitleOfCourtesy+''+FirstName+''+LastName As FullName FROM Employees ORDER BY EmployeeId DESC ";
   SqlConnection conn=new SqlConnection(connString);
   cmd.CommandText=sql;
   cmd.Connection=conn;
   conn.Open();
   SqlDataAdapter da=new SqlDataAdapter(sql,conn);
   DataSet ds=new DataSet();
   da.Fill(ds,"Employees");
   view1=ds.Tables["Employees"].DefaultView;
  }
  private void showreader(){
   //把DataReader捆绑到一个StringBuilder对象上,然后用HtmlContent输出
   //要想使用StringBuilder对象别忘了引用System.Text命名空间,呵呵.
   SqlDataReader reader =cmd.ExecuteReader();
   StringBuilder htmlStr=new StringBuilder("");
   while(reader.Read()){
    htmlStr.Append("<li>");
    htmlStr.Append(reader["EmployeeID"]);
    htmlStr.Append("&nbsp;");
    htmlStr.Append(reader.GetString(1));
    htmlStr.Append("</li>");   
   }
   reader.Close();
   HtmlContent.Text=htmlStr.ToString();
  }
  private void DataGrid1_Bind(){
   //绑定DataGrid1
   DataGrid1.DataSource=view1;
   DataGrid1.DataBind();
  }
  private void DataGrid2_Bind(){
   //绑定DataGrid2
   DataGrid2.DataSource=view1;
   DataGrid2.DataBind();
  }
  private void DataGrid1_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
  {
   //DataGrid1的排序事件引发的函数
   ViewState["SortExpreesion"]=e.SortExpression;
   if (ViewState["SortExpreesion"]!=null){
   view1.Sort=ViewState["SortExpreesion"].ToString();
   DataGrid1_Bind();
   }
  } 
  private void DataGrid2_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
  //DataGrid2的分页时间引发的函数
  {
   DataGrid2.CurrentPageIndex = e.NewPageIndex;
   DataGrid2_Bind();
  }
 }
}

 

 

蛙蛙推荐:如何编写高质量的python程序

原文:http://www.cnblogs.com/onlytiancai/archive/2012/09/11/How_to_write_high-quality_python_program.ht...
  • cjh6311882
  • cjh6311882
  • 2013年03月25日 00:00
  • 1359

蛙蛙推荐:利用WMI脚本批量恢复SQLSERVER数据库

转载原文:蛙蛙推荐:利用WMI脚本批量恢复SQLSERVER数据库 蛙蛙推荐:利用WMI脚本批量恢复SQLSERVER数据库 问题提出 蛙蛙求助:以编程的方式还原sq...
  • njw1028
  • njw1028
  • 2014年08月26日 09:46
  • 358

蛙宝任务检索

# coding=utf-8 import requests import re from lxml import etree import time import pandas as pd from...
  • olivesun88
  • olivesun88
  • 2017年04月25日 19:08
  • 210

《蛙》短评及书摘

单独二胎政策落定,莫言的长篇小说《蛙》我也看完了, 《蛙》的意义不仅是对计划生育政策得失的某种评价和反思,更包含了如何将姑姑和蝌蚪在六十年的岁月中所获得的历史经验转化为文学形式,使之成为可感形式问题的...
  • pan_tian
  • pan_tian
  • 2013年11月20日 13:50
  • 2099

青草池塘处处蛙

1.睡觉 春眠不觉晓,处处闻啼鸟。夜来风雨声,花落知多少。 2.发呆 人闲桂花落,夜静春山空。月出惊山鸟,时鸣春涧中。 3.喝酒 绿蚁新醅酒,红泥小火炉,晚来天欲雪,能饮一杯...
  • zuojiansizuop
  • zuojiansizuop
  • 2014年08月25日 11:53
  • 8

蛙步学排序算法之一 - 冒泡排序

排序中冒泡排序是最好理解的,每次都是拿一个元素与其他所有元素进行比较,知道此元素放置到合理位置,紧接着对其相邻的下一个元素反复执行此操作,知道所有元素都执行一遍,最终得到的就是排序要的数组。 p...
  • love_world_
  • love_world_
  • 2014年03月10日 22:17
  • 1125

LabVIEW 2维等高线(等值线)——井中蛙

跟随井中蛙一起做LabVIEW等高线吧!
  • a_1234567890abcd
  • a_1234567890abcd
  • 2015年06月11日 16:48
  • 1914

用asp.net连接数据库的登陆代码

用asp.net连接数据库,做登录页面,怎么弄呢? 办法: using System.Data.SqlClient;//记得加引用 private bool Login(string sno,st...
  • niecuiyun1012
  • niecuiyun1012
  • 2015年12月25日 19:08
  • 1209

华为G525乐蛙刷机包 乐蛙第123期14.04.25 适配

_________________________________________________________________   Rom下载地址:http://www.shuajizhijia...
  • u014022562
  • u014022562
  • 2014年05月06日 14:00
  • 450

《轻量级微服务架构》读书笔记——蛙牛

《轻量级微服务架构》读书笔记 蛙牛   发表于 2个月前 url:https://my.oschina.net/lujianing/blog/800412 ...
  • jackpk
  • jackpk
  • 2017年01月20日 16:51
  • 295
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:蛙蛙推荐:asp.net中基础的数据库演练代码
举报原因:
原因补充:

(最多只允许输入30个字)