吉林大學asp.net–ado.net教程 第一章例題帶解釋

來源:互聯網
上載者:User

在default.aspx上分別有如果下控制項
 文字框:
id,name,pwd,pwd2
-------------------------
radiobutton控制項兩個同在一組
nan,nv
--------------------------
按鈕一個:
button1
------------------------
驗證控制項三個
驗證非空控制項一個,
驗證資料庫是否有相同資料控制項兩個,分別驗證 id和name
驗證pwd和pwd2字元是否一致控制項一個
------------------------------------------------------------------
網格 datagrid 控制項一個
--------------------------------------default.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;

namespace ado
{
 /// <summary>
 /// _default 的摘要說明。
 /// </summary>
 public class _default : System.Web.UI.Page
 {
  protected System.Web.UI.WebControls.TextBox name;
  protected System.Web.UI.WebControls.TextBox pwd;
  protected System.Web.UI.WebControls.TextBox id;
  protected System.Web.UI.WebControls.RadioButton nan;
  protected System.Web.UI.WebControls.RadioButton nv;
  protected System.Web.UI.WebControls.Button Button1;
  protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator1;
  protected System.Web.UI.WebControls.CustomValidator CustomValidator2;
  protected System.Web.UI.WebControls.TextBox pwd2;
  protected System.Web.UI.WebControls.CompareValidator CompareValidator1;
  protected System.Web.UI.WebControls.DataGrid DataGrid1;
  protected System.Web.UI.WebControls.CustomValidator CustomValidator1;
 
  private void Page_Load(object sender, System.EventArgs e)
  {
   // 在此處放置使用者代碼以初始化頁面
   this.filldb();
  }

  #region Web Form設計器產生的程式碼
  override protected void OnInit(EventArgs e)
  {
   //
   // CODEGEN: 該調用是 ASP.NET Web Form設計器所必需的。
   //
   InitializeComponent();
   base.OnInit(e);
  }
  
  /// <summary>
  /// 設計器支援所需的方法 - 不要使用代碼編輯器修改
  /// 此方法的內容。
  /// </summary>
  private void InitializeComponent()
  {   
   this.Button1.Click += new System.EventHandler(this.Button1_Click);
   this.CustomValidator1.ServerValidate += new System.Web.UI.WebControls.ServerValidateEventHandler(this.CustomValidator1_ServerValidate);
   this.CustomValidator2.ServerValidate += new System.Web.UI.WebControls.ServerValidateEventHandler(this.CustomValidator2_ServerValidate);
   this.Load += new System.EventHandler(this.Page_Load);

  }
  #endregion

  private void CustomValidator1_ServerValidate(object source, System.Web.UI.WebControls.ServerValidateEventArgs args)
  {
   string pid=args.Value;//指明pid的值
   if(db.fiedname(pid))//如果db類的fiename返回的值是false,值為真,否則為假
   {
    args.IsValid=true;
   }
   else
   {
    args.IsValid=false;
   }
  }

  private void CustomValidator2_ServerValidate(object source, System.Web.UI.WebControls.ServerValidateEventArgs args)
  {
   string name=args.Value;//同上,這個是限制第二個文字框不能輸入相同的字串
   if (db.finname(name))
   {
    args.IsValid=true;
   }
   else
   {
    args.IsValid=false;
   }
  }
  public void filldb()//做一個方法,方便頁面的多處綁定
  {
  this.DataGrid1.DataSource=db.selectAll();//指明DataGrid1的資料來源
   this.DataGrid1.DataBind();//綁定
  }
  private void Button1_Click(object sender, System.EventArgs e)//插入資料
  {
   db p=new db();
   p.pid=this.id.Text;
   p.pname=this.name.Text;
   p.ppwd=this.pwd.Text;
   if(this.nan.Checked)//如果nan被選中
   {
    p.psex="男";
   }
   else
   {
    p.psex="女";
   }
   if(db.insertcmd(p))
   {
    Response.Write("插入成功");
    this.filldb();//插入成功就調用綁定
   }
   else
   {
   Response.Write("失敗"+e.ToString());//如果失敗就顯示並顯示出捕獲的錯誤資訊
   }
  }
 }
}
----------------------------------------db.cs類源檔案---------------------------------------------------
using System;
using System.Data;
using System.Data.SqlClient;

namespace ado
{
 /// <summary>
 /// db 的摘要說明。
 /// </summary>
 public class db
 {
  //定義幾個屬性
  public string pid;
  public string pname;
  public string ppwd;
  public string psex;
  public db()
  {
   //
   // TODO: 在此處添加建構函式邏輯
   //
  }
  //定義連接字串
  public static SqlConnection createCon()
 {
 SqlConnection con=new SqlConnection("server=.;database=usern;uid=sa;pwd=980123;");
   return con;
 }
  public static bool fiedname(string id)//尋找資料庫中是否有相同ID
  {
   SqlConnection con=db.createCon();
   con.Open();
   SqlCommand cmd=new SqlCommand("select count(*) from proe where uid='"+id+"'",con);
   int count=Convert.ToInt32(cmd.ExecuteScalar());//返回首行首列
   if (count>0)
   {
    return false;
   }
   else
   {
    return true;
   }
  }
   public static bool finname(string name)//同上
   {
   SqlConnection con=db.createCon();
    con.Open();
   SqlCommand cmd1=new SqlCommand("select count(*) from proe where uname='"+name+"'",con);
    int count=Convert.ToInt32(cmd1.ExecuteScalar());
    if (count>0)
    {
     return false;
    }
    else
    {
    return true;
    }
   }
  public static bool insertcmd(db p)//插入操作
  {
   try//判斷,如果下面插入操作成功執行就返回真
   {
    SqlConnection con=db.createCon();
    con.Open();
    SqlCommand cmdi=new SqlCommand("insert into proe values(@pid,@pname,@ppwd,@psex)",con);
    SqlParameter para=new SqlParameter("@pid",SqlDbType.VarChar,10);
    para.Value=p.pid;
    cmdi.Parameters.Add(para);
    para=new SqlParameter("@pname",SqlDbType.VarChar,50);
    para.Value=p.pname;
    cmdi.Parameters.Add(para);
    para=new SqlParameter("@ppwd",SqlDbType.VarChar,10);
    para.Value=p.ppwd;
    cmdi.Parameters.Add(para);
    para=new SqlParameter("@psex",SqlDbType.VarChar,2);//執行個體化SqlParameter("命令對象",資料類型,資料尺寸)
    para.Value=p.psex;//給出p.psex的值
    cmdi.Parameters.Add(para);//將p.psex添加到para集合
    cmdi.ExecuteNonQuery();//執行插入操作
    con.Close();//關閉串連
    return true;
   }
   catch(Exception e)//否則返回假並捕獲錯誤
   {
    return false;
   }
  }
  public static DataTable selectAll()//聲明一靜態檢索對象
  {
  SqlConnection con=db.createCon();//指明串連,下面 不需要開啟,如果沒有開,下面語句有鑰匙,會自己開
   SqlDataAdapter sda=new SqlDataAdapter();//建立資料配接器對象
  sda.SelectCommand=new SqlCommand("select * from proe",con);//執行個體化檢索資料的SelectCommand對象
  DataSet ds=new DataSet();//指明一個資料集
   sda.Fill(ds,"proe");//使用fill填充本地虛擬表
   return ds.Tables["proe"];//返回給頁面
  }
 }
}
 

--------------------------------------完---------------------------------------

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.