DBHepler

合集下载

三层架构中常用方法的封装

三层架构中常用方法的封装

三层架构中常用方法的封装
学习内容: 1.非空验证
2.日期有效性验证
3.DbHelper封装CRUD
重点难点:DbHelper数据访问的常用方法
教学过程
知识点1、数据验证的必要性及常用方法
2、DbHelper封装所带来的编码效率的提升
一、复习常用业务对象
DataSet的内部结构
DataTable、DataRow、DataColumn的相互关系
DataView的使用和数据过滤方法
二、非空数据验证
1、为什么需要数据验证
2、如何判断各个WinForm输入控件的非空状态
演示IsNotNullInputValidate()函数的使用
三、数字和日期有效性验证
1、数字有效性验证方法InputIsNumberValidate()函数演示
2、日期有效性验证方法InputIsDateInvalidate()函数演示
拓展其它需要数据验证的地方,例如比较验证、编号不重复验证(取数据库值)等,只大概讲解实现思路,不演示
四、封装DbHelper类
1、找前期做过的数据库增删改查的例子,总结里面有多少代码是重复的,讲解函数的抽取思路并简单演示ExecuteNoneQuery方法放到DbHelper类
2、演示ExecuteReader方法放到DbHelper类
3、演示数据查询的DbHelper方法
拓展可能有的方法,例如查询分页,带参数的查询等,大概讲解实现思路,不演示。

五、总结,布置作业。

androidstudio数据库查询语句

androidstudio数据库查询语句

androidstudio数据库查询语句Android Studio是一种集成开发环境(IDE),用于开发Android应用程序。

在Android应用程序开发中,数据库查询是非常重要的一环。

本文将一步一步地回答关于Android Studio数据库查询语句的问题。

第一步:什么是数据库查询语句?数据库查询语句是一种用于从数据库中检索数据的命令。

它可以选择性地检索特定的数据,并可以对数据进行排序、过滤和聚合等操作。

数据库查询语句是通过使用SQL(结构化查询语言)编写的。

第二步:如何在Android Studio中执行数据库查询语句?在Android Studio中,可以使用SQLite数据库进行数据存储和查询。

SQLite 是一种轻量级的数据库引擎,适用于Android应用程序开发。

首先,在Android Studio中创建数据库。

可以使用SQLiteOpenHelper类来创建数据库和表,并在onCreate()方法中执行所需的数据库创建和初始化操作。

javapublic class DatabaseHelper extends SQLiteOpenHelper {private static final String DATABASE_NAME = "mydatabase.db";private static final int DATABASE_VERSION = 1;public DatabaseHelper(Context context) {super(context, DATABASE_NAME, null, DATABASE_VERSION);}@Overridepublic void onCreate(SQLiteDatabase db) {db.execSQL("CREATE TABLE IF NOT EXISTS mytable (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER)");}...}然后,在需要执行数据库查询语句的地方,获取一个可读的数据库实例,并使用rawQuery()方法执行查询语句。

SqlServerDBHelper类

SqlServerDBHelper类

SqlServerDBHelper类using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using System.Data.SqlClient;namespace DAL{/// <summary>/// 连接数据库类/// </summary>public class SqlServerDBHelper{/// <summary>/// 连接数据库/// </summary>/// <returns></returns>public static SqlConnection GetConnection(){string conString = System.Configuration.ConfigurationManager.ConnectionStrings["connstring"].ToString();//定义连接数据库字符集 return new SqlConnection(conString);//返回连接数据库对象}/// <summary>/// ⽤数据填充的⽅法查询/// </summary>/// <param name="type"></param>/// <param name="sql"></param>/// <param name="pares"></param>/// <returns></returns>public DataSet GetDataSet(CommandType type, string sql, params SqlParameter[] pares){SqlConnection con = GetConnection();DataSet ds = new DataSet();SqlDataAdapter da = new SqlDataAdapter(sql, con);mandType = type;if (pares != null){foreach (SqlParameter pare in pares){da.SelectCommand.Parameters.Add(pare);}}da.Fill(ds);return ds;}public DataSet GetDataSet(string sql, params SqlParameter[] pares){return GetDataSet(CommandType.Text, sql, pares);}public SqlDataReader GetSqlDataReader(CommandType type, string sql,out SqlConnection con, params SqlParameter[] pares){con = GetConnection();SqlCommand cmd = new SqlCommand(sql, con);mandType = type;con.Open();if (pares != null){foreach (SqlParameter pare in pares){cmd.Parameters.Add(pare);}}return cmd.ExecuteReader(CommandBehavior.CloseConnection);}public SqlDataReader GetSqlDataReader(string sql,out SqlConnection con, params SqlParameter[] pares) {return GetSqlDataReader(CommandType.Text, sql,out con, pares);}public bool MidfyDB(CommandType type, string sql, params SqlParameter[] pares){bool falg = false;SqlConnection con = GetConnection();SqlCommand cmd = new SqlCommand(sql, con);mandType = type;if (pares != null){foreach (SqlParameter pare in pares){cmd.Parameters.Add(pare);}}SqlTransaction trans = null;try{con.Open();trans = con.BeginTransaction();cmd.Transaction = trans;cmd.ExecuteNonQuery();mit();falg = true;}catch (Exception e){trans.Rollback();throw e;}finally{con.Close();}return falg;}public bool MidfyDB(string sql, params SqlParameter[] pares){return MidfyDB(CommandType.Text, sql, pares);}/// <summary>/// 查询聚合函数类/// </summary>/// <param name="type">数据库操作的类型如:StoredProcedure(存储过程)、Text(⽂本)</param>/// <param name="sql">数据库操作字符集</param>/// <param name="paras">查询数据库时所⽤的参数</param>/// <returns>object(⼀般为单个值)</returns>public object GetScalar(CommandType type, string sql, params SqlParameter[] paras){SqlConnection con = GetConnection();//创建数据集对象SqlCommand cmd = new SqlCommand(sql, con);//操作数据库对象mandType = type;//数据库操作的类型//如果参数不为空if (paras != null){//遍历参数数组foreach (SqlParameter para in paras){cmd.Parameters.Add(para);//给操作数据库对象加上参数}}con.Open();//打开数据库连接object obj = cmd.ExecuteScalar();//返回⼀个⼀⾏⼀列的植con.Close();//关闭数据库连接return obj;}public object GetScalar(string sql, params SqlParameter[] paras){return GetScalar(CommandType.Text, sql, paras);}#region 数据填充DataTablepublic static DataTable DataFill(SqlCommand cmd){DataTable dt = new DataTable();cmd.Connection = GetConnection();SqlDataAdapter _da = new SqlDataAdapter(cmd);_da.Fill(dt);return dt;}#endregion//public DataTable DateTel(string sql)//{// SqlConnection con = GetConnection();// SqlCommand cmd = new SqlCommand(sql, con);// SqlDataAdapter da = new SqlDataAdapter(cmd);// DataTable dt = new DataTable();// da.Fill(dt);// return dt;//}internal DataSet GetDataSet(string sql, int UID){throw new NotImplementedException();}public static SqlCommand GetCommand(string text){SqlCommand cmdObject = new SqlCommand();mandText = text;return cmdObject;}public static void PreparedCommand(SqlCommand cmd, SqlParameter[] pars) {foreach (SqlParameter p in pars){cmd.Parameters.Add(p);}}}}。

数据层理解

数据层理解
这么做的作用就是 1.易于修改,特别是数据层,与表示层,我们可以把web页面换成winfrom窗体,只要把表示层的代码修改一下,其他层不用动,
三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。
业务逻辑层主要调用数据访问层,从数据访问层获得基本的数据,然后跟据需求,做不同的逻辑操作,处理好的数据给表示层。这个层得类主要是实体类的逻辑操作类。
数据访问层就是 凡是要在数据库中增删查该的代码都放在这层,
,,,,,业务逻辑层就是,凡是需要对事件,方法做判断的,都放在这层,也就是判断逻辑
,,,,,界面层(表示层),把界面显示的代码放在这层,
数据层:连接数据库,实现里面的方法.
业务层:调用数据层的方法.
表示层:就几天判断语句很简单.
数据访问层就是专门与数据库进行数据交互的层,常见做法就是写一个DBHelper类,这个类提供数据库连接,数据库命令操作,返回数据,是一个通用的类,然后里面也有很多实体数据库访问类。都是调用DBHelper这个类来与数据库进行操作。
1、表示层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。 2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。 3、数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。
各层的作用 1:数据数据访问层:主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务. 2:业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些积木的搭建。 3:表示层:主要表示WEB方式,也可以表示成WINFORM方式,WEB方式也可以表现成:aspx, 如果逻辑层相当强大和完善,无论表现层如何Βιβλιοθήκη 义和更改,逻辑层都能完善地提供服务。

android sqlite 插入数据的方法

android sqlite 插入数据的方法

android sqlite 插入数据的方法在 Android 中使用 SQLite 数据库进行数据插入的方法如下: 1. 创建一个继承自 `SQLiteOpenHelper` 的数据库辅助类,用于创建和管理数据库以及表结构。

在该类中,需要实现 `onCreate()` 方法来创建数据库和表,以及 `onUpgrade()` 方法来处理数据库版本升级。

```javapublic class DBHelper extends SQLiteOpenHelper {private static final String DATABASE_NAME = "mydatabase.db";private static final int DATABASE_VERSION = 1;public DBHelper(Context context) {super(context, DATABASE_NAME, null, DATABASE_VERSION); }@Overridepublic void onCreate(SQLiteDatabase db) {// 创建表结构String createTableQuery = "CREATE TABLE mytable (id INTEGER PRIMARY KEY, name TEXT)";db.execSQL(createTableQuery);}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {// 处理数据库版本升级if (oldVersion < 2) {// 执行相应的更新操作}}}```2. 在需要插入数据的地方,获取可写入的数据库实例,并使用`insert()` 方法插入数据。

```javaDBHelper dbHelper = new DBHelper(context);SQLiteDatabase db = dbHelper.getWritableDatabase();ContentValues values = new ContentValues();values.put("name", "John Doe");long newRowId = db.insert("mytable", null, values);if (newRowId != -1) {// 插入成功} else {// 插入失败}db.close();```在上述代码中,我们首先实例化了 `DBHelper` 类,并获取了可写入的数据库实例。

C#考试题——精选推荐

C#考试题——精选推荐

选择题1、数据适配器(DataAdapter)对象属于.Net数据提供程序,该对象的()方法用于将DataSet 中数据提交到数据库。

(选择一项)a) closeb) Fillc) Updated) Select2、在中,DataSet对象相当于一个临时的()。

(选择一项)a) 数据表b) 存储过程c) 数据库d) 数据适配器3、 DataSet是中用于存储从数据库检索到的数据的对象,下列关于DataSet 的说法错误的是()(选择一项)a) 在DataSet中可以包含多个DataTableb) DataSet可以简单地理解为一个临时数据库c) 在与数据库断开连接后,DataSet中的数据会消失d) DataSet实际是从数据源中检索到的数据在内存中的缓存4、在中,下列代码运行后的输出结果是()(选择一项)DataTable dt=new DataTable();Dt.Columns.Add(“编号”,typeof(System.Int16));Dt.Columns.Add(“成绩”,typeof(System.Int16));for(int i=1;i<=3;i++){DataRow dr=dt.NewRow();Dr[0]=i;Dr.Rows.Add(dr);}Console.WriteLine(dt.Rows.Count);a) 1b) 2c) 3d) 45、数据适配器(DataAdapter)对象属于.NET数据提供程序,该对象的()方法用于向DataSet中填充数据。

(选择一项)a) Closeb) Fillc)Updated)SelectDataGridView1中显示表carsinfo中数据的代码片段,其中DBHelper.Connection为数据库连接对象。

代码中存在错误的是第()行。

a) 1b) 2c) 3d) 4e)没有错误选择题1、中的Command对象允许向数据库传递请求,以便检索和操作数据库中的对象,下列()方法不是Command对象的方法。

使用DBHelper

使用DBHelper

使用DBHelper处女作代码o(∩_∩)o...哈哈!使用DBHelper完成数据层的访问及执行public class DBHelper{private static string connString;static DBHelper(){connString = ConfigurationManager.ConnectionStrings["MySchoolConnectio nString"].ToString();}public SqlConnection GetConnection(bool hasOpen){SqlConnection conn = new SqlConnection(connString);if (hasOpen)conn.Open();return conn;}public DataSet GetDataSet(string sql, CommandType cmdType, string dsName){DataSet ds = new DataSet();SqlConnection conn = new SqlConnection(connString);SqlDataAdapter objAdapter = new SqlDataAdapter(sql, conn);mandType = cmdType;objAdapter.Fill(ds, dsName);conn.Close();conn.Dispose();return ds;}public SqlDataReader GetReader(string sql, CommandType cmdType, params SqlParameter[] sqlParams){SqlCommand cmd = new SqlCommand();mandType = cmdType;mandText = sql;if (sqlParams != null)cmd.Parameters.AddRange(sqlParams);SqlConnection conn = GetConnection(true);cmd.Connection = conn;returncmd.ExecuteReader(CommandBehavior.CloseConnection);}public int ExecuteSql(string sql, CommandType cmdType, params SqlParameter[] sqlParams){int ret = 0;SqlCommand cmd = new SqlCommand();mandType = cmdType;mandText = sql;if (sqlParams != null)cmd.Parameters.AddRange(sqlParams);SqlConnection conn = GetConnection(true);cmd.Connection = conn;try{ret = (int)cmd.ExecuteNonQuery();}finally{conn.Close();}return ret;}}调用DBHelper:public class GradeService{#region Private Members//从配置文件中读取数据库连接字符串private readonly string connString = ConfigurationManager.ConnectionStrings["MySchoolConnectio nString"].ToString();private readonly string dboOwner = ConfigurationManager.ConnectionStrings["DataBaseOwner"].T o String();#endregion#region Public Methods/// <summary>/// 获得全部年级信息/// <returns>年级数据集</returns>public DataSet GetAllGrades(){DBHelper dbHelper = new DBHelper();returndbHelper.GetDataSet(dboOwner+".usp_SelectGradesAll",Comm andType.StoredProcedure,"grade");}/// <summary>/// 根据年级名称获得年级ID/// </summary>/// <param name="gradeName">年级名称</param>/// <returns>年级ID</returns>public int GetGradeIDByGradeName(string gradeName){int number = 0;DBHelper dbHelper = new DBHelper();SqlParameter sqlParams = new SqlParameter("@GradeName", SqlDbType.NVarChar, 50);sqlParams.Value = gradeName;SqlDataReader objReader =dbHelper.GetReader(dboOwner + ".usp_SelectGradeByGradeName", CommandType.StoredProcedure, sqlParams);if (objReader.Read())number = Convert.ToInt32(objReader["GradeID"]);objReader.Close();objReader.Dispose();return number;}/// 新增年级/// </summary>public void AddGrade(DataSet dsGrade){DBHelper dbHelper = new DBHelper();SqlParameter[] sqlParams= new SqlParameter[1];sqlParams[0] = new SqlParameter("@GradeName", SqlDbType.NVarChar, 50);//sqlParams[1] = new SqlParameter("@GradeID", SqlDbType.Int);sqlParams[0].Value = dsGrade.Tables["Grade"].Rows[0]["GradeName"];//sqlParams[1].Value = 0;dbHelper.ExecuteSql(dboOwner + ".usp_SelectGradeByGradeName",CommandType.StoredProcedure, sqlParams);}#endregion}。

DBHelper帮助类

DBHelper帮助类
public static DataTable ExecuteAsDataTable(string CommandText, params Parameter[] Params)
{
DataTable dataTable = null;
try
//:@在这里处理异常
throw new Exception(ex.Message);
//:$
}
}
/// <summary>
/// 执行指定sql语句,并返回DataTable对象
/// </summary>
/// <param name="CommandText">sql语句</param>
/// <param name="Params">参数列表</param>
/// <returns></returns>
}
/// <summary>
/// 获取一个数据库连接对象
/// </summary>
/// <returns></returns>
public static SqlConnection GetSqlConnection()
}
finally
{
try
{
_sCon.Close();
}
catch (Exception ex2)
DBHelper.Parameter[] sps = new DBHelper.Parameter[] {
new DBHelper.Parameter("@PageIndex",pageIndex)

基于SOA的资源整合平台

基于SOA的资源整合平台

基于SOA的资源整合平台摘要:由于许多单位在信息化建设中没有一个关于信息系统开发的总体性长远规划,因此在信息化建设中形成了一个个“信息孤岛”,为了最大程序的实现资源整合,节约资源,本文采用了soa 的软件体系结构来实现资源整合平台。

关键词:面向服务的体系架构;web服务;资源整合0 引言许多单位经过多年的信息化建设已经拥有相当数量的管理信息系统,这些系统也发挥了较好的作用。

但是,由于没有一个关于信息系统开发的总体性长远规划,从而导致这些信息管理系统成为一个个“信息孤岛”。

随着单位业务发展的需要,许多单位提出了以下新的业务需求:(1)单位内部若干不同的应用系统通常需要来协作完成某些新增业务,因而需要将这些“信息孤岛”整合起来,提供跨部门的业务服务。

(2)领导和员工需要更多的灵活性与方便性支持,使他们可以利用各种不同地接入方式来随时随地办理某些业务。

(3)原有系统无法满足单位日益发展地新需求。

针对以上这些问题,本文通过基于web服务的soa技术来构建数字化资源整合平台,采用此方案可以有效地集成与整合现有的各种信息管理系统。

soa技术在资源整合平台方面的应用soa(service-oriented architecture,也叫面向服务架构或面向服务的体系结构)是指为了解决在互联网环境下业务集成的需要[1],通过连接能完成特定任务的独立功能实体实现的一种软件系统架构。

soa体系结构包括3个主要的组件[2]:服务代理、服务请求者和服务提供者(见图1)各组件的功能如下:服务代理:对服务提供者进行注册发布,并提供搜索服务,以及对其进行分类。

服务请求者:通过服务代理查找所需的服务,以及使用该服务。

服务提供者:发布自己的服务,并使用自身服务的请求进行响应。

与传统开发方式相比,soa具有松散耦合、粗粒度、共享服务和标准化等特点,其对于资源整合平台实际的优势具体表现为以下4点:1)易于集成现有系统:在不对现有系统进行修改的前提下,soa 可迅速转换现有系统和应用为服务。

安卓命名规范

安卓命名规范

标识符命名法驼峰(Camel)命名法:又称小驼峰命名法,除首单词外,其余所有单词的第一个字母大写。

英文缩写原则:1 较短的单词可通过去掉“元音”形成缩写2 较长的单词可取单词的头几个字母形成缩写3 此外还有一些约定成俗的英文单词缩写.下面为常见的英文单词缩写:程序中使用单词缩写原则:不要用缩写,除非该缩写是约定俗成的。

命名规范:1 包(packages): 采用反域名命名规则,全部使用小写字母。

一级包名为com,二级包名为xx(可以是公司或则个人的随便),三级包名根据应用进行命名,四级包名为模块名或层2 类(classes):名词,采用大驼峰命名法,尽量避免缩写,除非该缩写是众所周知的,比如HTML,URL,如果类名称中包含单词缩写,则单词缩写的每个字母均应大写。

Adapter类 Adp或者Adapte 为后缀标识新闻详情适配器NewtDetailAdp或则直接 NewDetailAdapter解析类 Hlr为后缀标识首页解析类HomePosterHlr公共方法类 Tools或Manager为后缀标识线程池管理类:ThreadPoolManager日志工具类:LogTools数据库类以DBHelper后缀标识新闻数据库:NewDBHelper Service类以Service为后缀标识时间服务TimeServiceBroadcastReceive类以Broadcast为后缀标识时间通知TimeBroadcastContentProvider 以Provider为后缀标识直接写的共享基础类以Base开头BaseActivity,BaseFragment3 接口(interface):命名规则与类一样采用大驼峰命名法,多以able或ible结尾,如interface Runna ble ;interface Accessible 。

5 变量(variables)采用小驼峰命名法。

类中控件名称必须与xml布局id保持一致。

时序图

时序图

论坛1.1.1.1登录功能1.1.1.1.1任务描述用户要完成回复,发帖等功能,要先登录,在登录窗口填写完整的信息,点击登录按钮:图3-1.登录时序图frontdisplsy是前台页面,user是客户类的对象,而DBHelper是数据库类的一个对象,前台要求用户登录功能,首先检查用户是否存在,如果存在,返回true,登录成功1.1.1.1.2输入填好用户名,密码,验证码等信息1.1.1.1.3输出登录成功,进入页面1.1.1.2注册功能1.1.1.2.1任务描述填写完整用户的信息,可以注册一个新用户图3-2.用户注册时序图用户填写完整信息后,调用user类中的IsUserExist()判断一下用户是否存在,如果不存在,则调用UserAdd()函数增加增加用户,最后返回相应的信息。

1.1.1.2.2输入注册用户的详细信息,点击注册按钮1.1.1.2.3输出注册成功或注册失败1.1.1.3给用户增加角色1.1.1.3.1任务描述只有管理员可以使用此功能,在后台页面,管理员可以为每一个用户添加不同的角色图3-3.增加用户角色时序图displsyBack是后台页面,,user是客户类的对象,UserRole是用户角色的一个对象,而DBHelper是数据库类的一个对象,添加角色时,调用UserRole的UserRoleAdd ()函数,如果成功,则返回正确信息。

1.1.1.3.2输入选中用户,选中要赋予的角色1.1.1.3.3输出该用户成功的得到该角色1.1.1.4给某角色增加权限1.1.1.4.1任务描述可以给不同的角色增加不同的权限图3-4.给某角色增加权限时序图1.1.1.4.2输入选定响应的角色,选定响应的角色,点击按钮1.1.1.4.3输出赋予了该角色该权限1.1.1.5增加版块1.1.1.5.1任务描述管理员可以给论坛增加相应的版块图3-5.增加版块时序图1.1.1.5.2输入输入要增加板块的名字以及相关的信息,点击按钮1.1.1.5.3输出增加了要增加的版块1.1.1.6更改客户信息1.1.1.6.1任务描述用户在登录之后可以更改自己的信息图3-6.用户更改信息时序图1.1.1.6.2输入输入要更改的信息,点击更改按钮1.1.1.6.3输出成功的更改了相应的信息1.1.1.7发帖1.1.1.7.1任务描述点击地图左上角漫游缩图3-7.发帖时序图1.1.1.7.2输入输入相应的帖子的标题和内容以及相关的信息,点击发帖按钮1.1.1.7.3输出帖子发布成功并成功的显示到帖子显示的页面1.1.1.8回复1.1.1.8.1任务描述登录后的用户可以针对某一个帖子进行回复图3-8.回复时序图1.1.1.8.2输入输入回复的内容及相关信息,点击回复按钮1.1.1.8.3输出成功的回复并显示到相关的页面上1.1.1.9删除帖子1.1.1.9.1任务描述管理员可以对某些不符合规定的帖子进行删除图错误!文档中没有指定样式的文字。

python dbhelper写法

python dbhelper写法

python dbhelper写法Python中可以使用多种方式来编写数据库助手(dbhelper),下面是一个简单的示例,使用Python的sqlite3模块来创建一个数据库助手类:```pythonimport sqlite3class DBHelper:def __init__(self, db_name):= (db_name)= ()def create_table(self, table_name, columns):(f"CREATE TABLE IF NOT EXISTS {table_name} ({columns})")def insert_data(self, table_name, data):(f"INSERT INTO {table_name} VALUES ({data})")def query_data(self, table_name, condition=None):if condition:(f"SELECT FROM {table_name} WHERE {condition}")else:(f"SELECT FROM {table_name}")return ()def update_data(self, table_name, condition, data):(f"UPDATE {table_name} SET {data} WHERE {condition}")def delete_data(self, table_name, condition):(f"DELETE FROM {table_name} WHERE {condition}")def close(self):()()```这个类包含了一些基本的数据库操作,如创建表、插入数据、查询数据、更新数据和删除数据。

DbHelperSQL事务写法!

DbHelperSQL事务写法!

DbHelperSQL事务写法! 1try2 {3 mandInfo dbcom = new mandInfo();4 List<mandInfo> strStranList = new List<mandInfo>();56 StringBuilder strSql = new StringBuilder();7 strSql.Append("Update Jia72_Members Set ");8 strSql.Append("UserName=@UserName,");9 strSql.Append("YTCardId=@YTCardId,");10 strSql.Append("CardNum=@CardNum,");11 strSql.Append("Bank=@Bank,");12 strSql.Append("BankNumber=@BankNumber,");13 strSql.Append("QQNumber=@QQNumber,");14 strSql.Append("RealName=@RealName,");15 strSql.Append("SavedOn=@SavedOn");16 strSql.Append(" Where Id=@Id ");17string strSQLM = strSql.ToString();1819 SqlParameter[] parameters = {20new SqlParameter("@Id",SqlDbType.Int,4),21new SqlParameter("@UserName",SqlDbType.NVarChar,20),22new SqlParameter("@YTCardId",SqlDbType.Int,4),23new SqlParameter("@CardNum",SqlDbType.NVarChar,20),24new SqlParameter("@Bank",SqlDbType.NVarChar,50),25new SqlParameter("@BankNumber",SqlDbType.NVarChar,32),26new SqlParameter("@QQNumber",SqlDbType.NVarChar,50),27new SqlParameter("@RealName",SqlDbType.NVarChar,10),28new SqlParameter("@SavedOn",SqlDbType.DateTime)29 };30 parameters[0].Value = model.Id;31 parameters[1].Value = erName;32 parameters[2].Value = model.YTCardId;33 parameters[3].Value = model.CardNum;34 parameters[4].Value = model.Bank;35 parameters[5].Value = model.BankNumber;36 parameters[6].Value = model.QQNumber;37 parameters[7].Value = model.RealName;38 parameters[8].Value = model.SavedOn;3940 mandText = strSql.ToString();41 dbcom.Parameters = parameters;42 strStranList.Add(dbcom);//绑定会员信息4344//更新卡表45 strSql.Clear();46 strSql.Append("update Jia72_YTCard set ");47 strSql.Append("IsBind=1,");48 strSql.Append("SavedOn=getdate()");49 strSql.Append(" where Id=" + model.YTCardId);5051 mandText = strSql.ToString();52 dbcom.Parameters = null;53 strStranList.Add(dbcom);//更新卡表绑定5455if (DBUtility.DbHelperSQL.ExecuteSqlTran(strStranList) > 0)56 {57 mon.MessageBox.ShowAndRedirect(this, "保存成功!", "UserManages.aspx");58 }59else60 {61 MessageBox.Show(this, "操作失败,请联系管理员!");62 }63 }64catch (Exception ex)65 {66 LogHelper.WriteWebExLogInfo(this, ex);67 MessageBox.Show(this, "操作失败,请联系管理员!");68return;69 }说明:引⽤ DBUtility ⽤CommandInfo组织参数!还得⽤SQLHelper,悲催呀!。

contentprovide例子

contentprovide例子

"Content Provider"通常指的是在应用程序中提供和管理数据的组件。

在Android开发中,Content Providers是一种标准机制,允许不同的应用程序共享数据。

以下是一个简单的Content Provider 的例子:```javapublic class SimpleProvider extends ContentProvider {private static final String TAG = "SimpleProvider";private static final String DATABASE_NAME = "database.db";private static final int DATABASE_VERSION = 1;private static final String TABLE_NAME = "table";private static final String ID_COLUMN = "_id";private static final String VALUE_COLUMN = "value";private DBHelper dbHelper;@Overridepublic boolean onCreate() {dbHelper = new DBHelper(getContext());}@Overridepublic Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {SQLiteDatabase db = dbHelper.getReadableDatabase(); String finalSelection = selection == null ? null : selection + " AND " + ID_COLUMN + " > ?";return db.query(TABLE_NAME, projection, finalSelection, selectionArgs, null, null, sortOrder);}@Overridepublic Uri insert(Uri uri, ContentValues values) {SQLiteDatabase db = dbHelper.getWritableDatabase(); long id = db.insert(TABLE_NAME, null, values);Uri newUri = ContentUris.withAppendedId(uri, id);getContext().getContentResolver().notifyChange(newUri, null);}@Overridepublic int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {SQLiteDatabase db = dbHelper.getWritableDatabase(); int count = db.update(TABLE_NAME, values, selection, selectionArgs);getContext().getContentResolver().notifyChange(uri, null);return count;}@Overridepublic int delete(Uri uri, String selection, String[] selectionArgs) {SQLiteDatabase db = dbHelper.getWritableDatabase(); int count = db.delete(TABLE_NAME, selection, selectionArgs);getContext().getContentResolver().notifyChange(uri, null);}@Overridepublic String getType(Uri uri) {return null; // 这个方法在实际开发中可能不会被调用,但在实现时应该返回合适的MIME类型。

C#操作sqlserver的DbHelper类(带分页)

C#操作sqlserver的DbHelper类(带分页)

C#操作sqlserver的DbHelper类(带分页)1、配置⽂件设置:<appSettings><add key="testDB" value="server=192.168.1.10\sw;database=testDB;uid=sa;pwd=Aa123456" /></appSettings>2、操作数据帮助类:using System;using System.Collections.Generic;using System.Configuration;using System.Data;using mon;using System.Data.SqlClient;using System.Linq;using System.Text;using System.Threading.Tasks;namespace SwbAPI{public class DbHelper{//连接字符串static string strConn = ConfigurationManager.AppSettings["JiTuanShangWuDB"].ToString();//static string strConn = "server=192.168.1.238\sw;database=BusinessSystemDB;uid=sa;pwd=Aa123456";#region执⾏查询,返回DataTable对象-----------------------public static DataTable GetTable(string strSQL){return GetTable(strSQL, null);}public static DataTable GetTable(string strSQL, SqlParameter[] pas){return GetTable(strSQL, pas, CommandType.Text);}///<summary>///执⾏查询,返回DataTable对象///</summary>///<param name="strSQL">sql语句</param>///<param name="pas">参数数组</param>///<param name="cmdtype">Command类型</param>///<returns>DataTable对象</returns>public static DataTable GetTable(string strSQL, SqlParameter[] pas, CommandType cmdtype){DataTable dt = new DataTable(); ;using (SqlConnection conn = new SqlConnection(strConn)){SqlDataAdapter da = new SqlDataAdapter(strSQL, conn);mandType = cmdtype;if (pas != null){da.SelectCommand.Parameters.AddRange(pas);}da.Fill(dt);}return dt;}#region根据枚举连接数据库public static DataTable GetTable(string strSQL, DataBaseName dataBaseName){return GetTable(strSQL, null, dataBaseName);}public static DataTable GetTable(string strSQL, SqlParameter[] pas, DataBaseName dataBaseName){return GetTable(strSQL, pas, CommandType.Text, dataBaseName);}///<summary>///执⾏查询,返回DataTable对象///</summary>///<param name="strSQL">sql语句</param>///<param name="pas">参数数组</param>///<param name="cmdtype">Command类型</param>///<returns>DataTable对象</returns>public static DataTable GetTable(string strSQL, SqlParameter[] pas, CommandType cmdtype, DataBaseName dataBaseName){DataTable dt = new DataTable(); ;using (SqlConnection conn = new SqlConnection(GetEnumDes(dataBaseName.ToString()))){SqlDataAdapter da = new SqlDataAdapter(strSQL, conn);mandType = cmdtype;if (pas != null)}#endregion#endregion#region执⾏查询,返回DataSet对象-------------------------public static DataSet GetDataSet(string strSQL){return GetDataSet(strSQL, null);}public static DataSet GetDataSet(string strSQL, SqlParameter[] pas){return GetDataSet(strSQL, pas, CommandType.Text);}///<summary>///执⾏查询,返回DataSet对象///</summary>///<param name="strSQL">sql语句</param>///<param name="pas">参数数组</param>///<param name="cmdtype">Command类型</param>///<returns>DataSet对象</returns>public static DataSet GetDataSet(string strSQL, SqlParameter[] pas, CommandType cmdtype){DataSet dt = new DataSet(); ;using (SqlConnection conn = new SqlConnection(strConn)){SqlDataAdapter da = new SqlDataAdapter(strSQL, conn);mandType = cmdtype;if (pas != null){da.SelectCommand.Parameters.AddRange(pas);}da.Fill(dt);if (dt != null && dt.Tables.Count == 2){dt.Tables[0].TableName = "DataList";dt.Tables[1].TableName = "DataTotal";}else if (dt != null && dt.Tables.Count == 1){dt.Tables[0].TableName = "DataList";}}return dt;}#region根据枚举连接数据库public static DataSet GetDataSet(string strSQL, DataBaseName dataBaseName){return GetDataSet(strSQL, null, dataBaseName);}public static DataSet GetDataSet(string strSQL, SqlParameter[] pas, DataBaseName dataBaseName){return GetDataSet(strSQL, pas, CommandType.Text, dataBaseName);}///<summary>///执⾏查询,返回DataSet对象///</summary>///<param name="strSQL">sql语句</param>///<param name="pas">参数数组</param>///<param name="cmdtype">Command类型</param>///<returns>DataSet对象</returns>public static DataSet GetDataSet(string strSQL, SqlParameter[] pas, CommandType cmdtype, DataBaseName dataBaseName) {DataSet dt = new DataSet(); ;using (SqlConnection conn = new SqlConnection(GetEnumDes(dataBaseName.ToString()))){SqlDataAdapter da = new SqlDataAdapter(strSQL, conn);mandType = cmdtype;if (pas != null){da.SelectCommand.Parameters.AddRange(pas);}da.Fill(dt);if (dt != null && dt.Tables.Count == 2){dt.Tables[0].TableName = "DataList";dt.Tables[1].TableName = "DataTotal";}else if (dt != null && dt.Tables.Count == 1){#endregion#region执⾏⾮查询存储过程和SQL语句-----------------------------public static int ExcuteProc(string ProcName){return ExcuteSQL(ProcName, null, CommandType.StoredProcedure);}public static int ExcuteProc(string ProcName, SqlParameter[] pars){return ExcuteSQL(ProcName, pars, CommandType.StoredProcedure);}public static int ExcuteSQL(string strSQL){return ExcuteSQL(strSQL, null);}public static int ExcuteSQL(string strSQL, SqlParameter[] paras){return ExcuteSQL(strSQL, paras, CommandType.Text);}///执⾏⾮查询存储过程和SQL语句///增、删、改///</summary>///<param name="strSQL">要执⾏的SQL语句</param>///<param name="paras">参数列表,没有参数填⼊null</param>///<param name="cmdType">Command类型</param>///<returns>返回影响⾏数</returns>public static int ExcuteSQL(string strSQL, SqlParameter[] paras, CommandType cmdType){int i = 0;using (SqlConnection conn = new SqlConnection(strConn)){SqlCommand cmd = new SqlCommand(strSQL, conn);mandType = cmdType;if (paras != null){cmd.Parameters.AddRange(paras);}conn.Open();i = cmd.ExecuteNonQuery();conn.Close();}return i;}#region执⾏sql返回⾃增ID///<summary>///执⾏SQL语句,返回⾃增ID///</summary>///<param name="SQLString">SQL语句</param>///<returns>影响的记录数</returns>public static int ExecuteSQLReturnID(string SQLString){using (SqlConnection connection = new SqlConnection(strConn)){using (SqlCommand cmd = new SqlCommand(SQLString, connection)){try{connection.Open();mandText += ";\nSELECT SCOPE_IDENTITY() AS NewID;";int id = Convert.ToInt32(cmd.ExecuteScalar());return id;}catch (System.Data.SqlClient.SqlException e){connection.Close();throw e;}}}}#endregion#region执⾏sql返回⾃增ID///<summary>///执⾏SQL语句,返回⾃增ID///</summary>///<param name="SQLString">SQL语句</param>///<returns>影响的记录数</returns>public static int ExecuteSQLReturnID(string SQLString, SqlParameter[] paras, DataBaseName dataBaseName) {try{if (paras != null){cmd.Parameters.AddRange(paras);}connection.Open();mandText += ";\nSELECT SCOPE_IDENTITY() AS NewID;";int id = Convert.ToInt32(cmd.ExecuteScalar());return id;}catch (System.Data.SqlClient.SqlException e){connection.Close();throw e;}}}}#endregion#region根据枚举连接数据库public static int ExcuteProc(string ProcName, DataBaseName dataBaseName){return ExcuteSQL(ProcName, null, CommandType.StoredProcedure, dataBaseName);}public static int ExcuteProc(string ProcName, SqlParameter[] pars, DataBaseName dataBaseName){return ExcuteSQL(ProcName, pars, CommandType.StoredProcedure, dataBaseName);}public static int ExcuteSQL(string strSQL, DataBaseName dataBaseName){return ExcuteSQL(strSQL, null, dataBaseName);}public static int ExcuteSQL(string strSQL, SqlParameter[] paras, DataBaseName dataBaseName){return ExcuteSQL(strSQL, paras, CommandType.Text, dataBaseName);}///执⾏⾮查询存储过程和SQL语句///增、删、改///</summary>///<param name="strSQL">要执⾏的SQL语句</param>///<param name="paras">参数列表,没有参数填⼊null</param>///<param name="cmdType">Command类型</param>///<returns>返回影响⾏数</returns>public static int ExcuteSQL(string strSQL, SqlParameter[] paras, CommandType cmdType, DataBaseName dataBaseName) {int i = 0;using (SqlConnection conn = new SqlConnection(GetEnumDes(dataBaseName.ToString()))){SqlCommand cmd = new SqlCommand(strSQL, conn);mandType = cmdType;if (paras != null){cmd.Parameters.AddRange(paras);}conn.Open();i = cmd.ExecuteNonQuery();conn.Close();}return i;}#region执⾏sql返回⾃增ID///<summary>///执⾏SQL语句,返回⾃增ID///</summary>///<param name="SQLString">SQL语句</param>///<returns>影响的记录数</returns>public static int ExecuteSQLReturnID(string SQLString, DataBaseName dataBaseName){using (SqlConnection connection = new SqlConnection(GetEnumDes(dataBaseName.ToString()))){using (SqlCommand cmd = new SqlCommand(SQLString, connection)){try{connection.Open();mandText += ";\nSELECT SCOPE_IDENTITY() AS NewID;";int id = Convert.ToInt32(cmd.ExecuteScalar());return id;}catch (System.Data.SqlClient.SqlException e){connection.Close();throw e;#endregion#endregion#endregion#region执⾏查询返回第⼀⾏,第⼀列---------------------------------///<summary>///执⾏SQL语句,返回第⼀⾏,第⼀列///</summary>///<param name="strSQL">要执⾏的SQL语句</param>///<param name="paras">参数列表,没有参数填⼊null</param>///<param name="paras">执⾏类型,</param>///<returns>返回结果</returns>public static object ExcuteScalarSQLObj(string strSQL, SqlParameter[] paras){object i ;using (SqlConnection conn = new SqlConnection(strConn)){SqlCommand cmd = new SqlCommand(strSQL, conn);mandType = CommandType.Text;if (paras != null){cmd.Parameters.AddRange(paras);}conn.Open();if (DBNull.Value == cmd.ExecuteScalar()){i = null;}else{i =cmd.ExecuteScalar();}conn.Close();}return i;}public static int ExcuteScalarSQL(string strSQL){return ExcuteScalarSQL(strSQL, null);}public static int ExcuteScalarSQL(string strSQL, SqlParameter[] paras){return ExcuteScalarSQL(strSQL, paras, CommandType.Text);}public static int ExcuteScalarProc(string strSQL, SqlParameter[] paras){return ExcuteScalarSQL(strSQL, paras, CommandType.StoredProcedure);}///<summary>///执⾏SQL语句,返回第⼀⾏,第⼀列///</summary>///<param name="strSQL">要执⾏的SQL语句</param>///<param name="paras">参数列表,没有参数填⼊null</param>///<returns>返回影响⾏数</returns>public static int ExcuteScalarSQL(string strSQL, SqlParameter[] paras, CommandType cmdType) {int i = 0;using (SqlConnection conn = new SqlConnection(strConn)){SqlCommand cmd = new SqlCommand(strSQL, conn);mandType = cmdType;if (paras != null){cmd.Parameters.AddRange(paras);}conn.Open();if (DBNull.Value == cmd.ExecuteScalar()){i = 0;}else{i = Convert.ToInt32(cmd.ExecuteScalar());}conn.Close();}return i;}#region根据枚举连接数据库public static int ExcuteScalarSQL(string strSQL, DataBaseName dataBaseName){return ExcuteScalarSQL(strSQL, paras, CommandType.Text, dataBaseName);}public static int ExcuteScalarProc(string strSQL, SqlParameter[] paras, DataBaseName dataBaseName){return ExcuteScalarSQL(strSQL, paras, CommandType.StoredProcedure, dataBaseName);}///<summary>///执⾏SQL语句,返回第⼀⾏,第⼀列///</summary>///<param name="strSQL">要执⾏的SQL语句</param>///<param name="paras">参数列表,没有参数填⼊null</param>///<returns>返回影响⾏数</returns>public static int ExcuteScalarSQL(string strSQL, SqlParameter[] paras, CommandType cmdType, DataBaseName dataBaseName) {int i = 0;using (SqlConnection conn = new SqlConnection(GetEnumDes(dataBaseName.ToString()))){SqlCommand cmd = new SqlCommand(strSQL, conn);mandType = cmdType;if (paras != null){cmd.Parameters.AddRange(paras);}conn.Open();if (DBNull.Value == cmd.ExecuteScalar()){i = 0;}else{i = Convert.ToInt32(cmd.ExecuteScalar());}conn.Close();}return i;}#endregion#endregion#region查询获取单个值------------------------------------///<summary>///调⽤不带参数的存储过程获取单个值///</summary>///<param name="ProcName"></param>///<returns></returns>public static object GetObjectByProc(string ProcName){return GetObjectByProc(ProcName, null);}///<summary>///调⽤带参数的存储过程获取单个值///</summary>///<param name="ProcName"></param>///<param name="paras"></param>///<returns></returns>public static object GetObjectByProc(string ProcName, SqlParameter[] paras){return GetObject(ProcName, paras, CommandType.StoredProcedure);}///<summary>///根据sql语句获取单个值///</summary>///<param name="strSQL"></param>///<returns></returns>public static object GetObject(string strSQL){return GetObject(strSQL, null);}///<summary>///根据sql语句和参数数组获取单个值///</summary>///<param name="strSQL"></param>///<param name="paras"></param>///<returns></returns>public static object GetObject(string strSQL, SqlParameter[] paras){return GetObject(strSQL, paras, CommandType.Text);}///<summary>///执⾏SQL语句,返回⾸⾏⾸列///</summary>///<param name="strSQL">要执⾏的SQL语句</param>///<param name="paras">参数列表,没有参数填⼊null</param>///<returns>返回的⾸⾏⾸列</returns>{SqlCommand cmd = new SqlCommand(strSQL, conn);mandType = cmdtype;if (paras != null){cmd.Parameters.AddRange(paras);}conn.Open();o = cmd.ExecuteScalar();conn.Close();}return o;}#region根据枚举连接数据库///<summary>///调⽤不带参数的存储过程获取单个值///</summary>///<param name="ProcName"></param>///<returns></returns>public static object GetObjectByProc(string ProcName, DataBaseName dataBaseName){return GetObjectByProc(ProcName, null, dataBaseName);}///<summary>///调⽤带参数的存储过程获取单个值///</summary>///<param name="ProcName"></param>///<param name="paras"></param>///<returns></returns>public static object GetObjectByProc(string ProcName, SqlParameter[] paras, DataBaseName dataBaseName){return GetObject(ProcName, paras, CommandType.StoredProcedure, dataBaseName);}///<summary>///根据sql语句获取单个值///</summary>///<param name="strSQL"></param>///<returns></returns>public static object GetObject(string strSQL, DataBaseName dataBaseName){return GetObject(strSQL, null, dataBaseName);}///<summary>///根据sql语句和参数数组获取单个值///</summary>///<param name="strSQL"></param>///<param name="paras"></param>///<returns></returns>public static object GetObject(string strSQL, SqlParameter[] paras, DataBaseName dataBaseName){return GetObject(strSQL, paras, CommandType.Text, dataBaseName);}///<summary>///执⾏SQL语句,返回⾸⾏⾸列///</summary>///<param name="strSQL">要执⾏的SQL语句</param>///<param name="paras">参数列表,没有参数填⼊null</param>///<returns>返回的⾸⾏⾸列</returns>public static object GetObject(string strSQL, SqlParameter[] paras, CommandType cmdtype, DataBaseName dataBaseName) {object o = null;using (SqlConnection conn = new SqlConnection(GetEnumDes(dataBaseName.ToString()))){SqlCommand cmd = new SqlCommand(strSQL, conn);mandType = cmdtype;if (paras != null){cmd.Parameters.AddRange(paras);}conn.Open();o = cmd.ExecuteScalar();conn.Close();}return o;}#endregion#endregion#region查询获取DataReader------------------------------------///<returns>DataReader对象</returns>public static SqlDataReader GetReaderByProc(string procName){return GetReaderByProc(procName, null);}///<summary>///调⽤带有参数的存储过程,返回DataReader对象///</summary>///<param name="procName">存储过程名</param>///<param name="paras">参数数组</param>///<returns>DataReader对象</returns>public static SqlDataReader GetReaderByProc(string procName, SqlParameter[] paras){return GetReader(procName, paras, CommandType.StoredProcedure);}///<summary>///根据sql语句返回DataReader对象///</summary>///<param name="strSQL">sql语句</param>///<returns>DataReader对象</returns>public static SqlDataReader GetReader(string strSQL){return GetReader(strSQL, null);}///<summary>///根据sql语句和参数返回DataReader对象///</summary>///<param name="strSQL">sql语句</param>///<param name="paras">参数数组</param>///<returns>DataReader对象</returns>public static SqlDataReader GetReader(string strSQL, SqlParameter[] paras){return GetReader(strSQL, paras, CommandType.Text);}///<summary>///查询SQL语句获取DataReader///</summary>///<param name="strSQL">查询的SQL语句</param>///<param name="paras">参数列表,没有参数填⼊null</param>///<returns>查询到的DataReader(关闭该对象的时候,⾃动关闭连接)</returns>public static SqlDataReader GetReader(string strSQL, SqlParameter[] paras, CommandType cmdtype){SqlDataReader sqldr = null;SqlConnection conn = new SqlConnection(strConn);SqlCommand cmd = new SqlCommand(strSQL, conn);mandType = cmdtype;if (paras != null){cmd.Parameters.AddRange(paras);}conn.Open();//CommandBehavior.CloseConnection的作⽤是如果关联的DataReader对象关闭,则连接⾃动关闭sqldr = cmd.ExecuteReader(CommandBehavior.CloseConnection);return sqldr;}#region根据枚举连接数据库///<summary>///调⽤不带参数的存储过程,返回DataReader对象///</summary>///<param name="procName">存储过程名称</param>///<returns>DataReader对象</returns>public static SqlDataReader GetReaderByProc(string procName, DataBaseName dataBaseName){return GetReaderByProc(procName, null, dataBaseName);}///<summary>///调⽤带有参数的存储过程,返回DataReader对象///</summary>///<param name="procName">存储过程名</param>///<param name="paras">参数数组</param>///<returns>DataReader对象</returns>public static SqlDataReader GetReaderByProc(string procName, SqlParameter[] paras, DataBaseName dataBaseName) {return GetReader(procName, paras, CommandType.StoredProcedure, dataBaseName);}///<summary>///根据sql语句返回DataReader对象///</summary>///<param name="strSQL">sql语句</param>///<returns>DataReader对象</returns>public static SqlDataReader GetReader(string strSQL, DataBaseName dataBaseName){return GetReader(strSQL, null, dataBaseName);}///<summary>///根据sql语句和参数返回DataReader对象public static SqlDataReader GetReader(string strSQL, SqlParameter[] paras, DataBaseName dataBaseName){return GetReader(strSQL, paras, CommandType.Text, dataBaseName);}///<summary>///查询SQL语句获取DataReader///</summary>///<param name="strSQL">查询的SQL语句</param>///<param name="paras">参数列表,没有参数填⼊null</param>///<returns>查询到的DataReader(关闭该对象的时候,⾃动关闭连接)</returns>public static SqlDataReader GetReader(string strSQL, SqlParameter[] paras, CommandType cmdtype, DataBaseName dataBaseName) {SqlDataReader sqldr = null;SqlConnection conn = new SqlConnection(GetEnumDes(dataBaseName.ToString()));SqlCommand cmd = new SqlCommand(strSQL, conn);mandType = cmdtype;if (paras != null){cmd.Parameters.AddRange(paras);}conn.Open();//CommandBehavior.CloseConnection的作⽤是如果关联的DataReader对象关闭,则连接⾃动关闭sqldr = cmd.ExecuteReader(CommandBehavior.CloseConnection);return sqldr;}#endregion#endregion#region批量插⼊数据---------------------------------------------///<summary>///往数据库中批量插⼊数据///</summary>///<param name="sourceDt">数据源表</param>///<param name="targetTable">服务器上⽬标表</param>public static void BulkToDB(DataTable sourceDt, string targetTable){SqlConnection conn = new SqlConnection(strConn);SqlBulkCopy bulkCopy = new SqlBulkCopy(conn); //⽤其它源的数据有效批量加载sql server表中bulkCopy.DestinationTableName = targetTable; //服务器上⽬标表的名称bulkCopy.BatchSize = sourceDt.Rows.Count; //每⼀批次中的⾏数try{conn.Open();if (sourceDt != null && sourceDt.Rows.Count != 0)bulkCopy.WriteToServer(sourceDt); //将提供的数据源中的所有⾏复制到⽬标表中}catch (Exception ex){throw ex;}finally{conn.Close();if (bulkCopy != null)bulkCopy.Close();}}#region根据枚举连接数据库///<summary>///往数据库中批量插⼊数据///</summary>///<param name="sourceDt">数据源表</param>///<param name="targetTable">服务器上⽬标表</param>public static void BulkToDB(DataTable sourceDt, string targetTable, DataBaseName dataBaseName){SqlConnection conn = new SqlConnection(GetEnumDes(dataBaseName.ToString()));SqlBulkCopy bulkCopy = new SqlBulkCopy(conn); //⽤其它源的数据有效批量加载sql server表中bulkCopy.DestinationTableName = targetTable; //服务器上⽬标表的名称bulkCopy.BatchSize = sourceDt.Rows.Count; //每⼀批次中的⾏数try{conn.Open();if (sourceDt != null && sourceDt.Rows.Count != 0)bulkCopy.WriteToServer(sourceDt); //将提供的数据源中的所有⾏复制到⽬标表中}catch (Exception ex){throw ex;}finally}}#endregion#endregion#region根据枚举返回数据库连接字符串public static string GetEnumDes(string dataBaseName){string conn = string.Empty;if (dataBaseName == "集团商务"){conn = ConfigurationManager.AppSettings["JiTuanShangWuDB"].ToString();}else if (dataBaseName == "数据平台"){conn = ConfigurationManager.AppSettings["ShuJuPingTai"].ToString();}else if (dataBaseName == "⽜经纪") {conn = ConfigurationManager.AppSettings["NiuJingJi"].ToString();}else if (dataBaseName == "会员"){conn = ConfigurationManager.AppSettings["MobilePlatformDB"].ToString();}else if (dataBaseName == "电商官⽹"){conn = ConfigurationManager.AppSettings["ElectricityDB"].ToString();}else if (dataBaseName == "数据平台DI"){conn = ConfigurationManager.AppSettings["ShuJuPingTaiDI"].ToString();}else{conn = ConfigurationManager.AppSettings["JiTuanShangWuDB"].ToString();}return conn;}#endregion#region MyRegion 执⾏事务逻辑///<summary>///有锁的事务⽅法插⼊数据///</summary>///<param name="tran"></param>///<param name="sql"></param>///<param name="pms"></param>///<returns></returns>public static int ExecuteNonQuery(IDbTransaction tran, string sql, params SqlParameter[] pms){using (SqlCommand cmd = new SqlCommand(sql, (SqlConnection)tran.Connection, (SqlTransaction)tran)) {if (pms != null){cmd.Parameters.AddRange(pms);}return cmd.ExecuteNonQuery();}}#endregion}#region数据库--枚举(DataBaseName)///<summary>///数据库类型枚举:集团商务、⽜经纪///</summary>public enum DataBaseName{集团商务,数据平台,⽜经纪,会员,电商官⽹,数据平台DI}#endregion#region MyRegion 事务sqlpublic class TransactionDal{CreateConnection = Connection;}public void BeginTransaction(){dbconnection = new SqlConnection(CreateConnection);dbconnection.Open();transaction = dbconnection.BeginTransaction();}public void CommitTransaction(){if (null != transaction){mit();}}public void RollbackTransaction(){if (null != transaction){transaction.Rollback();}}public void DisposeTransaction(){if (dbconnection.State == ConnectionState.Open){dbconnection.Close();}if (null != transaction){transaction.Dispose();}}}#endregion}3、调⽤存储过程实例:SqlParameter[] param = new SqlParameter[]{new SqlParameter("@type", 0),new SqlParameter("@BaseID", 0),new SqlParameter("@FenGongSiID",model.tb_diqu)}BaseID = DbHelper.ExcuteProc("Proc_Base_Add", param);View Code4、修改实例:public ActionResult HuiFuKeHu(int baseid){var sql = string.Format(@"UPDATE BaseTable SET ZhuangTai=0 WHERE BaseID={0}", baseid); var re = DbHelper.ExcuteSQL(sql);var restr = "";if (re > 0)restr = "ok";elserestr = "no";return Json(new { y = restr });}View Code5、分页帮助类:using System;using System.Collections.Generic;using System.Data;using System.Data.SqlClient;using System.Linq;using System.Text;using System.Web;namespace SwbAPI{public class PagingHelper///<summary>///获取分页SQL语句,默认row_number为关健字,所有表不允许使⽤该字段名///</summary>///<param name="_pageSize">每页记录数</param>///<param name="_pageIndex">当前页数</param>///<param name="_columnSql">查询列</param>///<param name="_fromSql">from后sql</param>///<param name="_orderField">排序字段,多个则⽤“,”隔开</param>///<returns>分页SQL语句</returns>public static DataSet GetPagingData(int _pageSize, int _pageIndex, string _columnSql, string _fromSql, string _orderField){DataSet ds = null;//检查当前页数if (_pageIndex < 1){_pageIndex = 1;}//分页sql,拼接SQL字符串,加上ROW_NUMBER函数进⾏分页StringBuilder newSafeSql = new StringBuilder();newSafeSql.AppendFormat("SELECT ROW_NUMBER() OVER(ORDER BY {0}) as ROWID,", _orderField);newSafeSql.AppendFormat("{0} from {1}", _columnSql, _fromSql);//拼接成最终的SQL语句StringBuilder sbSql = new StringBuilder();sbSql.Append("SELECT * FROM (");sbSql.Append(newSafeSql.ToString());sbSql.Append(") AS T");sbSql.AppendFormat(" WHERE ROWID between {0} and {1}", ((_pageIndex - 1) * _pageSize) + 1, _pageIndex * _pageSize);// 总条数sqlsbSql.AppendFormat(";select count(1) Total from " + _fromSql);sbSql.ToString();ds = DbHelper.GetDataSet(sbSql.ToString());return ds;}#region根据枚举返回数据库连接字符串///<summary>///获取分页SQL语句,默认row_number为关健字,所有表不允许使⽤该字段名///</summary>///<param name="_pageSize">每页记录数</param>///<param name="_pageIndex">当前页数</param>///<param name="_columnSql">查询列</param>///<param name="_fromSql">from后sql</param>///<param name="_orderField">排序字段,多个则⽤“,”隔开</param>///<returns>分页SQL语句</returns>public static DataSet GetPagingData(int _pageSize, int _pageIndex, string _columnSql, string _fromSql, string _orderField, DataBaseName dataBaseName){DataSet ds = null;//检查当前页数if (_pageIndex < 1){_pageIndex = 1;}//分页sql,拼接SQL字符串,加上ROW_NUMBER函数进⾏分页StringBuilder newSafeSql = new StringBuilder();newSafeSql.AppendFormat("SELECT ROW_NUMBER() OVER(ORDER BY {0}) as ROWID,", _orderField);newSafeSql.AppendFormat("{0} from {1}", _columnSql, _fromSql);//拼接成最终的SQL语句StringBuilder sbSql = new StringBuilder();sbSql.Append("SELECT * FROM (");sbSql.Append(newSafeSql.ToString());sbSql.Append(") AS T");sbSql.AppendFormat(" WHERE ROWID between {0} and {1}", ((_pageIndex - 1) * _pageSize) + 1, _pageIndex * _pageSize);// 总条数sqlsbSql.AppendFormat(";select count(1) Total from " + _fromSql);sbSql.ToString();ds = DbHelper.GetDataSet(sbSql.ToString(),dataBaseName);return ds;}#endregion#region根据枚举返回数据库连接字符串///<summary>///获取分页SQL语句,默认row_number为关健字,所有表不允许使⽤该字段名///</summary>///<param name="_pageSize">每页记录数</param>///<param name="_pageIndex">当前页数</param>///<param name="_columnSql">查询列</param>///<param name="_fromSql">from后sql</param>///<param name="_orderField">排序字段,多个则⽤“,”隔开</param>///<returns>分页SQL语句</returns>public static DataSet GetPagingData(int _pageSize, int _pageIndex, string _columnSql, string _fromSql,SqlParameter[] param, string _orderField, DataBaseName dataBaseName) {DataSet ds = null;//检查当前页数。

C#DBHelper数据库连接帮助类

C#DBHelper数据库连接帮助类

C#DBHelper数据库连接帮助类DBHelper 帮助类1.作⽤:将C#应⽤程序与SQL SERVER数据库交互的公共⽅法(增删改查)提取出来,⽅便调⽤。

2.要求:C#⼊门级程序员必须熟练掌握编写3.组成:三个公⽤⽅法。

①ExecuteNonQuery 增删改②ExecuteScalar 查询返回单⾏单列③ExecuteQuery 查询返回多⾏多列4.代码明细:public class DBHelper{public static string strConn = "Server=01D023*********;uid=CG;pwd=abc.1234;Database=QQChat";///<summary>///增、删、改通⽤⽅法///</summary>///<param name="Sql">SQL 语句</param>///<param name="paras">可选参数</param>///<returns></returns>public static int ExecuteNonQuery(string Sql, params SqlParameter[] paras){int result = 0;//using ⾃动关闭资源,⾃带异常处理机制using (SqlConnection conn = new SqlConnection(strConn)){conn.Open();//打开连接SqlCommand command = new SqlCommand(Sql, conn);//执⾏命令command.Parameters.AddRange(paras);//加⼊参数result = command.ExecuteNonQuery(); //执⾏}return result;}///<summary>///查询单⾏当列///</summary>///<param name="Sql">SQL 语句</param>///<param name="paras">可选参数</param>///<returns></returns>public static Object ExecuteScalar(string Sql, params SqlParameter[] paras){Object result;//using ⾃动关闭资源,⾃带异常处理机制using (SqlConnection conn = new SqlConnection(strConn)){conn.Open();//打开连接SqlCommand command = new SqlCommand(Sql, conn);//执⾏命令command.Parameters.AddRange(paras);//加⼊参数result = command.ExecuteScalar(); //执⾏}return result;}///<summary>///查询返回多⾏多列;泛型升级未知对象类型;泛型类,泛型⽅法///</summary>///<param name="Sql">SQL 语句</param>///<param name="paras">可选参数</param>///<returns></returns>public static List<T> ExecuteQuery<T>(string Sql, params SqlParameter[] paras){List<T> list = new List<T>();//创建泛型集合对象using (SqlConnection conn = new SqlConnection(strConn)){conn.Open();//打开连接SqlCommand command = new SqlCommand(Sql, conn);//执⾏命令command.Parameters.AddRange(paras);//加⼊参数using (SqlDataReader reader = command.ExecuteReader())//执⾏游标{Type type = typeof(T);//检测类型//next 往下执⾏while (reader.Read()){//创建对象T t=(T)Activator.CreateInstance(type);foreach(PropertyInfo pi in type.GetProperties()) //反射 PropertyInfo类获取基类的属性{pi.SetValue(t, reader[] is DBNull ? null:reader[]); //ORM 将游标的值赋给对象 }list.Add(t);}}}return list;}}}。

DBHelper类

DBHelper类

Class DBHelper{public static int ExecuteNonQuery(string sql, params SqlParameter[] parameters) {string constr =ConfigurationManager.ConnectionStrings["constr"].ConnectionString;using (SqlConnection con = new SqlConnection(constr)){con.Open();using (SqlCommand cmd = con.CreateCommand()){mandText = sql;foreach (SqlParameter parameter in parameters){cmd.Parameters.Add(parameter);}return cmd.ExecuteNonQuery();}}}public static object ExecuteScalar(string sql, params SqlParameter[] parameters) {string constr =ConfigurationManager.ConnectionStrings["constr"].ConnectionString;using (SqlConnection con = new SqlConnection(constr)){con.Open();using (SqlCommand cmd = con.CreateCommand()){mandText = sql;foreach (SqlParameter parameter in parameters){cmd.Parameters.Add(parameter);}return cmd.ExecuteScalar();}}}public static SqlDataReader ExecuteReader(string sql, params SqlParameter[] parameters){string constr =ConfigurationManager.ConnectionStrings["constr"].ConnectionString;using (SqlConnection con = new SqlConnection(constr)){con.Open();using (SqlCommand cmd = con.CreateCommand()){mandText = sql;foreach (SqlParameter parameter in parameters){cmd.Parameters.Add(parameter);}return cmd.ExecuteReader();}}}public static DataTable ExecuteDataTable(string sql, params SqlParameter[] parameters){string constr =ConfigurationManager.ConnectionStrings["constr"].ConnectionString;using (SqlConnection con = new SqlConnection(constr)){con.Open();using (SqlCommand cmd = con.CreateCommand()){mandText = sql;foreach (SqlParameter parameter in parameters){cmd.Parameters.Add(parameter);}DataSet dt = new DataSet();SqlDataAdapter dataadapetr = new SqlDataAdapter(cmd);dataadapetr.Fill(dt);DataTable datatable = dt.Tables[0];return datatable;}}}}}。

三层架构是指哪三层

三层架构是指哪三层

1.三层架构是指哪三层界面(视图)层业务层数据访问(持久层)2.为什么使用三层职责划分清楚,各司其职,各层配合例如:发现sql语句写错了,sql语句的定义一定在dao层3.上层如何将数据传递给下层例如:数据从界面如何传给业务数据如何从业务传给dao方法:要将数据传给谁,就new谁的对象,然后用new出来的对象调用方法,数据作为方法参数传递4.下层如何将数据传递给上层下层通过返回值将数据传递给上层5.各层中都写什么代码5.1.界面层界面层主要职责是输入和输出5.2.业务层编写控制业务流程的代码,通常是很多if语句来控制业务流程,是核心层例如:业务:用银行卡取钱业务流程1:判断卡是否是银行卡2:验证卡号和密码是否正确3:验证卡是否被冻结4:判断余额是否够用5:是否跨行6:是否跨地区7:开始取钱5.3.数据访问层5.3.1.Dao1.拼写sql语句2.为sql语句的参数准备值3.发送sql和值到dbheleprDao程序编写的模板public int save(User user) throws Exception{Try{拼写sql准备值调用dbhelpoer执行sql}catcha(Exception e){异常处理,将异常抛出}Finally{Dbheleper.close()}}5.3.2.dbHelper执行sql语句6.三层示例6.1.需求1:实现添加商品2:商品的列表显示6.2.准备开发环境6.2.1.数据库环境CREATE DATABASE threelayer;USE threelayer;CREATE TABLE product(id INT AUTO_INCREMENT PRIMARY KEY,productName VARCHAR(30),price DOUBLE);6.2.2.Java环境同一个项目中,每个开发人员的各个环境的版本必须一致1.Jdk的版本:1.82.Eclipse的版本:Kepler3.Jar包:a)Mysql数据库的驱动jarb)Junit的jar6.2.3.创建java项目项目命名为threelayer11266.2.4.分包edu.xbmu.threelayer.view :界面层edu.xbmu.threelayer.service :业务层edu.xbmu.threelayer.dao :数据访问层edu.xbmu.threelayer.pojo :实体类6.2.5.准备DBHelper(其实你可以拷贝)6.3.需求1:添加商品6.3.1.开发实体类6.3.2.开发界面层在view包中创建表示界面的类,命名为ProductView6.3.3.开发业务层6.3.4.开发dao层6.3.5.单元测试6.4.需求2:查看所有的商品6.4.1.开发dao6.4.2.开发service6.4.3.开发视图6.4.4.单元测试11 / 11。

【C#工具类】将DataTable转化为List集合对象

【C#工具类】将DataTable转化为List集合对象

【C#⼯具类】将DataTable转化为List集合对象在mvc中,直接调⽤sp或者执⾏sql语句,Dbhelper返回值⼀般为DataSet或者DateTable,如我们需要List或者是对象类型,则需要⾃⼰转化。

这⾥提供⼀个⼯具类(Ps:参考⾃⽹络⼀⽚⽂章,但由于找不到原页⾯,这⾥并没有贴出出处):DateTable => Listpublic static IList<T> ListConvertToModel(DataTable dt){// 定义集合IList<T> ts = new List<T>();// 获得此模型的类型Type type = typeof(T);string tempName = "";foreach (DataRow dr in dt.Rows){T t = new T();// 获得此模型的公共属性PropertyInfo[] propertys = t.GetType().GetProperties();foreach (PropertyInfo pi in propertys){tempName = ; // 检查DataTable是否包含此列if (dt.Columns.Contains(tempName)){// 判断此属性是否有Setterif (!pi.CanWrite) continue;object value = dr[tempName];if (value != DBNull.Value)pi.SetValue(t, value, null);}}ts.Add(t);}return ts;}DateTable => Objectpublic static T ConvertToModel(DataTable dt){// 获得此模型的类型Type type = typeof(T);string tempName = "";T t = new T();// 获得此模型的公共属性PropertyInfo[] propertys = t.GetType().GetProperties();foreach (PropertyInfo pi in propertys){tempName = ; // 检查DataTable是否包含此列if (dt.Columns.Contains(tempName)){// 判断此属性是否有Setterif (!pi.CanWrite) continue;object value = dt.Rows[0][tempName];if (value != DBNull.Value)pi.SetValue(t, value, null);}}return t;}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档