前天在项目组做了一个关于C#与Asp.Net的报告,说是报告,其实心里面比较惭愧,自己知道的那些东西,怎么能去给人家做报告,不过这是经理的意思,所以我也就~~~。准备了一个小例子,实现对一张表进行增,删,改以及分页操作。项目组的同事都很感慨,微软的东西实在是为程序员想的太多了。具体例子和幻灯片在附件里面提供下载。
下面将例子部分关键代码列出来:
由于我使用的是SQL Server 2000数据库,所以我这里就用pubs库里面的jobs表作为例子。
首先是连接数据库,在Web.config里面配置连接SQL数据库,这里其实和在Struts里面的struts-config.xml里面配置datasource是一样的道理:
Web.config.xml:
<appSettings>
<add key="connstring" value="server=.;uid=sa;pwd=;database=pubs"></add>
</appSettings>
接下来写一个连接数据库的公共的方法:
DBM.cs:
using System;
using System.Data;
using System.Data.SqlClient; //引用命名空间,和java里面的import的作用是一样的
namespace Zsgc.DataBaseManage
{
public class DBM
{
private SqlConnection conn;
public SqlConnection getConn()
{
//创建与数据库的连接
if(conn==null)
{
//从Web.config里面读取
conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["connstring"]);
}
return conn;
}
//查询不带分页
public static DataTable getList(string sql)
{
DBM dbm=new DBM();
//适配器
SqlDataAdapter sda=new SqlDataAdapter(sql,dbm.getConn());
//实例化DataTable
DataTable dt=new DataTable();
//适配器将检索到的数据填充到dt里面
sda.Fill(dt);
//返回填充完数据的DataTable
return dt;
}
//查询带分页的,start--起始页,size--每页几条数据
public static DataTable getList(string sql,int start,int size)
{
DBM dbm=new DBM();
//适配器
SqlDataAdapter sda=new SqlDataAdapter(sql,dbm.getConn());
//实例化DataSet
DataSet ds=new DataSet();
//适配器将检索到的数据填充到ds里面,jobs--表名
sda.Fill(ds,start,size,"jobs");
//获取包含在DataSet中的表名为“jobs”的表
//返回填充完数据的DataTable
return ds.Tables["jobs"];
}
//公共的执行方法
public static Exception Execute(string sql)
{
DBM dbm=new DBM();
//Command对象是用于检索、更新、插入、删除数据库中的数据
SqlCommand cmd=new SqlCommand(sql,dbm.getConn());
//实例化一个Exception
Exception exception=null;
//因为ADO.NET遵循的是断开式连接的数据模型
//所以在使用Command对象的时候必须显式的打开数据库的连接
cmd.Connection.Open();
//数据库事务
SqlTransaction stran=cmd.Connection.BeginTransaction();
//开始事务
cmd.Transaction=stran;
try
{
//执行sql语句
cmd.ExecuteNonQuery();
//提交事务
stran.Commit();
}
catch(Exception ex)
{
//返回错误信息
exception=ex;
//出现错误,事务回滚
stran.Rollback();
}
finally
{
//关闭与数据库的连接
cmd.Connection.Close();
}
//返回异常信息
return exception;
}
//公共javascript提示信息
public static void message(string msg)
{
System.Web.HttpContext.Current.Response.Write("<script>alert('" +msg+ "');</script>");
}
}
}
属性类:JobsModel.cs,将jobs表里面的字段都体现在这个里面,类似于FormBean,提供get(),set()方法。
接口类:ITFOpt.cs,至于对于为什么要使用接口,我想就不需要说明了。
ITFOpt.cs:
using System;
using System.Data;
namespace Zsgc.Op
{
//实现增、删、改、查的公共接口
public interface ITFOpt
{
DataTable getList(); //没有任何条件的查询
DataTable getList(string wherestring); //带有条件的查询
DataTable getList(int start,int size);//有条件分页
Exception Add(object model); //添加数据
Exception Modify(object model);//修改数据
Exception Delete(object model);//删除数据
Exception Update(object pk);//修改数据
}
}
继承接口实现增删改的操纵类:JobsOpt.cs
JobsOpt.cs:
using System;
using System.Data;
using Zsgc.DataBaseManage;
using Zsgc.Models;
namespace Zsgc.Op
{
//C#中的继承是使用:来实现的,其中JobsOpt叫做派生类,ITFOpt叫做基类
//string.Format()方法是将指定的 String 中的每个格式项替换为相应对象的值的文本等效项。
public class JobsOpt:ITFOpt
{
#region ITFOpt 成员
//全查数据
public DataTable getList()
{
string sql=string.Format("select * from jobs");
return DBM.getList(sql);
}
//有条件的查询,wherestring是条件
public DataTable getList(string wherestring)
{
string sql=string.Format("select * from jobs where"+wherestring);
return DBM.getList(sql);
}
//支持有条件分页的查询
public DataTable getList(int start, int size)
{
string sql=string.Format("select * from jobs");
return DBM.getList(sql,start,size);
}
//添加数据
public Exception Add(object model)
{
//实例化一个JobsModel
JobsModel jobs=(JobsModel)model;
//其中{}是C#中的占位符,用来确定指定变量的值显示于字符串中的位置
string sql=string.Format("insert into jobs(job_desc,min_lvl,max_lvl) values('{0}',{1},{2})",jobs.Job_desc,jobs.Min_lvl,jobs.Max_lvl);
return DBM.Execute(sql);
}
//修改数据,不修改描述
public Exception Modify(object model)
{
//实例化一个JobsModel
JobsModel jobs=(JobsModel)model;
string sql=string.Format("update jobs set min_lvl={0},max_lvl={1} where job_id={2}",jobs.Min_lvl,jobs.Max_lvl,jobs.Job_id);
return DBM.Execute(sql);
}
//删除数据,pk为主键
public Exception Delete(object pk)
{
string sql=string.Format("delete from jobs where job_id={0}",pk.ToString());
return DBM.Execute(sql);
}
//修改数据,除主键外其余的都修改
public Exception Update(object model)
{
//实例化一个JobsModel
JobsModel jobs=(JobsModel)model;
//其中{}是C#中的占位符,用来确定指定变量的值显示于字符串中的位置
string sql=string.Format("update jobs set job_desc='{1}',min_lvl={1},max_lvl={2} where job_id={3}",jobs.Job_desc,jobs.Min_lvl,jobs.Max_lvl,jobs.Job_id);
return DBM.Execute(sql);
}
#endregion
}
}
好了万事具备,只欠东风,我会在接下来继续说明如何进行数据绑定。
最终实现效果如图所示:
- C#与Asp.net介绍.zip (135.6 KB)
- 描述: 开发环境:Microsoft Visual Studio .NET 2003
数据库:SQL Server 2000
- 下载次数: 291
分享到:
相关推荐
ASP.NET MVC Linq to SQL 实现数据库增删改(源代码)ASP.NET MVC Linq to SQL 实现数据库增删改(源代码) ASP.NET MVC 分页控件
asp.net页面增删改数据easyui,就摘取了主要的两个cshtml,2个c#
ASP.NET MVC3 简单的增删改查分页例子(附数据库,下载即可运行),适合新手使用,实现增删该查以及分页功能(使用老外写的一个jquery插件完成超炫的分页效果),代码简洁,注释详细,欢迎大家下载使用。
asp.net轻松实现中的分页 asp.net轻松实现中的分页 asp.net轻松实现中的分页 asp.net轻松实现中的分页 asp.net轻松实现中的分页 asp.net轻松实现中的分页 asp.net轻松实现中的分页 asp.net轻松实现中的分页 asp.net...
ASP.NET Repeater分页,查询分页 ASP.NET Repeater分页,查询分页 ASP.NET Repeater分页,查询分页 ASP.NET Repeater分页,查询分页 ASP.NET Repeater分页,查询分页
简单的ASP.NET MVC增删改项目,SQL数据库
asp.net利用存储过程分页代码,代码很详细,有建库脚本和页面的调用。
asp.net 用存储过程实现分页(附代码)
ASP.NET增删改查例子(作业) 初学者必备.... ASP.NET增删改查例子(作业) 初学者必备....
ASP.NET Repeater 简单的增删改查分页例子(附数据库,下载即可运行),适合新手使用,本例使用三层架构搭建,实现增删该查以及分页功能,代码简洁,注释详细,欢迎大家下载使用。
VS 2012,MSSQL 2012 ASP.NET DataList 简单的增删改查分页例子(附数据库,下载即可运行),适合新手使用,本例使用三层架构搭建,实现增删该查以及分页功能,代码简洁,注释详细,欢迎大家下载使用。
ASP.NET MVC 增册改查 分页,采用三层架构,分页用存储过程分页,学了 好些时间 了,做了这一个小东西 和大家来分享下.希望能对大家有用!
asp.net实现添加文章时分页,每页内容自己控制
ASP.NET生成静态页面和分页 ASP.NET生成静态页面和分页 ASP.NET生成静态页面和分页 ASP.NET生成静态页面和分页
快速入门ASP.NET,并实现一个简单的CRUD,环境基于VS 2017。
asp.net 在access下实现分页