前天在项目组做了一个关于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 MVC3 简单的增删改查分页例子(附数据库,下载即可运行),适合新手使用,实现增删该查以及分页功能(使用老外写的一个jquery插件完成超炫的分页效果),代码简洁,注释详细,欢迎大家下载使用。
这个"ASP.NET增删改查例子(作业)"是一个针对初学者的教程,旨在教授如何在ASP.NET环境中实现基本的数据操作功能,即添加(Add)、删除(Delete)、修改(Update)和查询(Query)。这些是任何数据库驱动的Web应用中...
在"Ext.NET后台分页增删改"这个主题中,我们将探讨如何利用Ext.NET实现数据库后台分页、树形视图操作以及Grid面板的CRUD(创建、读取、更新和删除)功能。 首先,让我们深入了解一下后台分页。在Ext.NET中,为了...
这个“easyui增删改很好的例子”是一个实用的学习资源,展示了如何利用EasyUI来实现数据的添加、删除和修改功能。在产品管理和产品分类管理两个子模块中,我们可以看到这些操作的实现,这对于理解和掌握EasyUI的数据...
首先, GridView控件是ASP.NET中的一个服务器控件,它可以直接绑定到数据源,如SQL Server、Oracle,或者像在这个例子中使用的Access数据库。在页面加载时,GridView会自动根据数据源填充表格,并提供多种内置的功能...
AngularJS 是一个强大的...这个AngularJS Demo是初学者学习基础功能的好例子,通过逐步实现增删改查和分页,可以帮助理解AngularJS的核心概念和实际应用。在实践中不断探索和优化,将有助于提升对AngularJS的掌握程度。
在本文中,我们将深入探讨如何使用ASP.NET MVC 5.2、Entity Framework 6.0 (EF6) 和 MySQL 数据库通过CodeFirst模式构建一个基本的增删改查(CRUD)应用程序。这个例子展示了如何将这三个技术有效地结合起来,以实现...
在ASP.NET中,GridView控件是一个非常常用的组件,用于显示和操作数据集合,如数据库查询...对于初学者来说,这是一个很好的起点,可以帮助理解如何在没有使用ASP.NET设计视图的情况下,纯代码方式实现数据展示和交互。
综上,"EasyUI增查改删操作示例"压缩包提供的 Demo 应包含前端的 HTML 文件、CSS 样式和 JavaScript 代码,以及后端的 ASP.NET 或 Web API 控制器,演示了如何结合 EasyUI 和 C# 实现数据管理的基本功能。...
5. **增除删改**:这部分可能包含了一些演示如何在GridView中实现添加、删除和修改记录的示例代码或文件夹。 6. **App_Code**:在ASP.NET中,这是一个特殊目录,用于存放共享的类文件和其他后台代码。在这个项目中...
GridView增删改 GridView隐藏列 GridView行背景颜色 GridView突显单元格 GridView省略字符 GridView求和平均值 GridView排序 GridView结合控件 GridView合并表头 GridView固定表头 GridView分页 GridView导入导出 ...