(说明:我的教程做的是exe 的文件,不是任何病毒,希望大家放心下载,我以人格保证)
主要是其他的工具做的比较大,没有那么多空间,望大家见谅!
简单介绍一下asp.net中DataGrid的使用,包括增加 删除 修改 显示 开发环境 (Windows2003 Server + Visual Studio 2005 + Sql Server 2005) 适合初学者使用
(在.net2.0中数据显示控件都使用GridView,但是有部分人还在使用.net1.1, 所以我还是先说说DataGrid控件的使用,其实用法都差不多的)
大家主要看我的操作,我会做详细的注释~!
1.新建网站 2.首先建立数据库,建表 create database testdb 好了,数据库建好了,表我们在程序中建立
然后 表建好来
create table test ( id int identity(1,1) primary key, title varchar(50), email varchar(50), context varchar(50) ) 3.先插入数据
然后我们来作插入操作 主要看我的操作
顺便作一下验证 好了
现在双击新增进行新增
成功了 下来我们 作显示
4.显示数据
我们来设置主键 以及允许分页
分页没有反应 我要再这个事件中写代码 看^&^& PageIndexChanged事件 分页好来吧
5.数据更新
我现在做数据的更新 更新的时候先要响应 EditCommand事件
然后更新和取消的时候分别响应以下两个事件 UpdateCommand CancelCommand 我们先不 验证
6.数据删除
我们先做删除
//我们应该做一个提示的 提醒是否删除 我们来做
就是把这个删除列转成模板列 然后加一个js脚本就可以了 脚本错了 我找一下
它再删除的适合是触发一个事件 看我^^ DeleteCommand这个事件
7.整合 /// <summary> /// 执行sql语句 /// </summary> /// <param name="sql"></param> public void ExecSql(string sql) { //创建数据库连接对象 SqlConnection conn = this.GetConnection(); conn.Open(); //创建一个Sql命令对象 SqlCommand cmd = new SqlCommand(); cmd.CommandText = sql; //设置命令对象的连接对象 cmd.Connection = conn; //执行sql命令 cmd.ExecuteNonQuery(); //
conn.Close(); }
/// <summary> /// js同一管理 /// </summary> /// <param name="msg"></param> public void RegJavaScript(string msg) { Response.Write("<script>alert('"+msg+"')</script>"); } //还有一种使用方式 public void JavaScript(string msg) { Page.ClientScript.RegisterClientScriptBlock(Page.GetType(),"al", "alert('"+msg+"')",true); }
重新测试一下 我会提高视频下载和工程文件的下载,谢谢大家 如果还有什么问题,给我来信 我的地址是:lvyanyang@163.com 我的博客:http://www.lvyanyang.net 机器比较卡 用2005就是有点卡的
js的用法就是这样 至于css的用法其实很简单 我自己对美工也不熟悉,所以也不方便做 好了就这样了,再见~!
原带码
protected void Page_Load(object sender, EventArgs e) {
} protected void ButCreateTable_Click(object sender, EventArgs e) { //先编写sql脚本 string sql = @" create table [test] ( id int identity primary key, title varchar(50), email varchar(50), context varchar(100) ) "; //直接调用 this.ExecSql(sql); this.Javascript("数据表建立成功!"); #region //然后要连接数据 //首先我们写一个方法,来返回数据库的连接 //还要先导入命名空间 //我们来得到连接 //SqlConnection conn = this.getConn(); ////打开连接 //conn.Open();
////然后创建一个sql命令对象 //SqlCommand cmd = new SqlCommand();
////设置cmd对象的连接对象 //cmd.Connection = conn;
////设置cmd对象的命令字符串 //cmd.CommandText = sql; ////执行sql命令 //cmd.ExecuteNonQuery(); ////返回受影响的行数
////提示操作成功!
////记得要关闭连接 //conn.Close();
//注意js的用法 //Response.Write("<script>alert('数据表建立成功!')</script>");
//测试一下 #endregion }
/// <summary> /// 创建数据库的连接对象 /// </summary> /// <returns></returns> public SqlConnection getConn() { //首先创建数据库连接字符串 string connectionstring = "server=localhost;uid=sa;pwd=1;database=testdb"; //然后创建sql数据库的连接对象 SqlConnection conn = new SqlConnection(); conn.ConnectionString = connectionstring; //设置SqlConnection对象的连接串
//然后返回这个对象 return conn;
} protected void ButtAdd_Click(object sender, EventArgs e) { ////先创建数据库连接对象 //SqlConnection conn = this.getConn(); ////打开连接 //conn.Open();
////创建命令对象 //SqlCommand cmd = new SqlCommand(); //设置sql命令 //其实就是Insert 语句 //这个应该是他的Text属性 string sql = "insert into [Test] values('" + this.Tbtitle.Text + "','" + this.Tbemail.Text + "','" + this.Tbcontext.Text + "')"; //cmd.CommandText = "insert into [Test] values('"+this.Tbtitle.Text+"','"+this.Tbemail.Text+"','"+this.Tbcontext.Text+"')";
////设置连接对象 //cmd.Connection = conn;
//// 执行sql命令 //cmd.ExecuteNonQuery();
////记得关闭 //conn.Close(); ////提示保存成功 this.ExecSql(sql); this.Javascript("新增成功!"); //Response.Write("<script>alert('新增成功!')</script>");
//测试一下 } protected void ButShow_Click(object sender, EventArgs e) { this.pageBind(); } /// <summary> /// 执行数据绑定 /// </summary> public void pageBind() { //还是一样,建立数据连接对象 SqlConnection conn = this.getConn(); SqlCommand cmd = new SqlCommand(); cmd.CommandText = "select * from [test]"; cmd.Connection = conn; //这个不用解释了吧 //要先创建一个数据适配器 SqlDataAdapter sda = new SqlDataAdapter(cmd); //用这个命令对象来够造 //再创建一个DataSet DataSet ds = new DataSet(); //用SqlDataAdapter来填充DataSet sda.Fill(ds);
//设置主键 this.DataGrid1.DataKeyField = "id"; //允许分页 this.DataGrid1.AllowPaging = true; //设置分页模式 this.DataGrid1.PagerStyle.Mode = PagerMode.NumericPages; //页面型 分号
//执行数据绑定 this.DataGrid1.DataSource = ds;
this.DataGrid1.DataBind(); //预览一下 //因为触发了验证 //取消就可以了 } protected void DataGrid1_PageIndexChanged(object source, DataGridPageChangedEventArgs e) { // 设置页的索引 this.DataGrid1.CurrentPageIndex = e.NewPageIndex; //我们要重新绑定 //所以我们应该把绑定的代码分离出来 this.pageBind(); } protected void DataGrid1_DeleteCommand(object source, DataGridCommandEventArgs e) { //先取主键,然后根据主键拼sql语句,然后删除 //因为我们再开始的适合设置了主键 //所以我们现在取主键 //大家看我怎么取 string id = this.DataGrid1.DataKeys[e.Item.ItemIndex].ToString(); //好了 ,这样我们就取出来了 //实际上它把所以主键都放到DataKeys这个集合中了 //我们用索引把它取出来 //然后组织sql语句 string sql = "delete [test] where id="+id;
//还是和刚才一样 //先建立数据库连接对象 //设置命令对象 //最后执行sql //我们好像一直再做重复的东西 //所以我们要提取成一个方法 //一个执行sql的方法 //然后调用我们的方法 this.ExecSql(sql);
// 删除完要重新绑定的 this.pageBind();
//提示成功 Response.Write("<script>alert('删除成功')</script>");
//测试&&& }
/// <summary> /// 执行sql语句 /// </summary> /// <param name="sql"></param> public void ExecSql(string sql) { //先创建数据库连接对象 SqlConnection conn = this.getConn(); //打开连接 conn.Open();
//创建命令对象 SqlCommand cmd = new SqlCommand(); //设置sql命令 //其实就是Insert 语句 //这个应该是他的Text属性 cmd.CommandText = sql; //"insert into [Test] values('" + this.Tbtitle.Text + "','" + this.Tbemail.Text + "','" + this.Tbcontext.Text + "')";
//设置连接对象 cmd.Connection = conn;
// 执行sql命令 cmd.ExecuteNonQuery();
//记得关闭 conn.Close(); } protected void DataGrid1_EditCommand(object source, DataGridCommandEventArgs e) { //设置控件的模式是编辑模式 this.DataGrid1.EditItemIndex = e.Item.ItemIndex; //执行数据绑定 this.pageBind(); } protected void DataGrid1_CancelCommand(object source, DataGridCommandEventArgs e) { //取消的时候设置控件的模式为正常, this.DataGrid1.EditItemIndex = -1; //这样就可以了 //绑定数据 this.pageBind(); } protected void DataGrid1_UpdateCommand(object source, DataGridCommandEventArgs e) { //关键就是更新的时候 //我们先取主键 string id = this.DataGrid1.DataKeys[e.Item.ItemIndex].ToString(); //然后取每个文本的值 //取文本的值比较麻烦,大家看我的写法 //我一会再解释 string title = ((TextBox)(this.DataGrid1.Items[e.Item.ItemIndex].Cells[0].Controls[0])).Text; //首先 this.DataGrid1.Items是所有行的集合 //this.DataGrid1.Items[e.Item.ItemIndex]就是编辑所在的行 //this.DataGrid1.Items[e.Item.ItemIndex].Cells[0]这行的第0列,也就是第一列 //this.DataGrid1.Items[e.Item.ItemIndex].Cells[0].Controls[0]这行的第0列里面的第1个控件 //(TextBox)(this.DataGrid1.Items[e.Item.ItemIndex].Cells[0].Controls[0])因为它是对象,所以我们要转成TextBox //然后取它的Text属性 //现在大家明白了吧,因为这些都是集合,所以第一项,下标就是0 //其他的文本取法一样的 string email = ((TextBox)(this.DataGrid1.Items[e.Item.ItemIndex].Cells[1].Controls[0])).Text; string context = ((TextBox)(this.DataGrid1.Items[e.Item.ItemIndex].Cells[2].Controls[0])).Text;
//拼sql string sql = "update [test] set title = '"+title+"',email='"+email+"',context='"+context+"' where id="+id; //执行sql this.ExecSql(sql); //重新绑定数据 //成功后要把模式改回来 this.DataGrid1.EditItemIndex = -1; this.pageBind();
// 提示成功 //其实这个也可以单独写一个方法
string msg = "更新成功!"; this.Javascript(msg);
//测试一下啊 this.RegJavascript(msg);//ok }
public void Javascript(string msg) { Response.Write("<script>alert('"+msg+"')</script>"); } //还有一种方法,来注册客户端脚本 public void RegJavascript(string msg) { // 这个我就不详细解释来 Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "dd", "alert('"+msg+"')", true); } //我们把代码整理一下
|