























(说明:我的教程做的是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);
}
//我们把代码整理一下
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。