在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"];//返回給頁面
}
}
}
--------------------------------------完---------------------------------------