为什么 protected SqlDataReader RunProcedure(..)这段还要写Command.CommandType=CommandType.StoredProcedure;
using System.Data;
using System.Data.SqlClient;
namespace Wrox.WebModules.Data
{
/// <summary>
/// DbObject 的摘要说明。
/// </summary>
public abstract class DbObject
{
protected SqlConnection Connection;
private string connectionString;
public DbObject(string newConnectionString)
{
connectionString=newConnectionString;
Connection=new SqlConnection(connectionString);
//
// TODO: 在此处添加构造函数逻辑
//
}
protected string ConnectionString
{
get
{
return connectionString;
}
}
private SqlCommand BuildQueryCommand(string storedProcName,IDataParameter[] parameters)
{
SqlCommand command=new SqlCommand(storedProcName,Connection);
command.CommandType=CommandType.StoredProcedure;
foreach(SqlParameter parameter in parameters)
{
command.Parameters.Add(parameter);
}
return command;
}
private SqlCommand BuildIntCommand(string storedProcName,IDataParameter[] parameters)
{
SqlCommand command=BuildQueryCommand(storedProcName,parameters);
command.Parameters.Add(new SqlParameter("ReturnValue",SqlDbType.Int,4,ParameterDirection.ReturnValue,false,0,0,string.Empty,DataRowVersion.Default,null));
return command;
}
protected int RunProcedure(string storedProcName,IDataParameter[] parameters,out int rowsAffected)
{
int result;
Connection.Open();
SqlCommand command=BuildIntCommand(storedProcName,parameters);
rowsAffected=command.ExecuteNonQuery();
result=(int)command.Parameters["ReturnValue"].Value;
Connection.Close();
return result;
}
protected SqlDataReader RunProcedure(string storedProcName,IDataParameter[] parameters)
{
SqlDataReader returnReader;
Connection.Open();
SqlCommand command=BuildQueryCommand(storedProcName,parameters);
command.CommandType=CommandType.StoredProcedure;
returnReader=command.ExecuteReader(CommandBehavior.CloseConnection);
return returnReader;
}
protected DataSet RunProcedure(string storedProcName,IDataParameter[] parameters,string tableName)
{
DataSet dataSet=new DataSet();
Connection.Open();
SqlDataAdapter sqlDA=new SqlDataAdapter();
sqlDA.SelectCommand=BuildQueryCommand(storedProcName,parameters);
sqlDA.Fill(dataSet,tableName);
Connection.Close();
return dataSet;
}
protected void RunProcedure(string storedProcName,IDataParameter[] parameters,DataSet dataSet,string tableName)
{
Connection.Open();
SqlDataAdapter sqlDA=new SqlDataAdapter();
sqlDA.SelectCommand=BuildIntCommand(storedProcName,parameters);
sqlDA.Fill(dataSet,tableName);
Connection.Close();
}
}
}
相关推荐
【微信小程序毕业设计】微信点餐系统源码(java+小程序+mysql).zip
项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 部署容器:tomcat7 小程序开发工具:hbuildx/微信开发者工具
【微信小程序毕业设计】微信小程序的点餐系统源码(java+小程序+mysql).zip
项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 部署容器:tomcat7 小程序开发工具:hbuildx/微信开发者工具
基于java+springboot+mysql+微信小程序的微信点餐系统 源码+数据库(高分毕业设计).zip
项目已获导师指导并通过的高分毕业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 技术组成 语言:java 开发环境:idea、微信开发者工具 数据库:MySql5.7以上 部署环境:maven 数据库工具:navicat
【微信小程序毕业设计】食堂窗口自助点餐系统源码(java+小程序+mysql).zip
项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 部署容器:tomcat7 小程序开发工具:hbuildx/微信开发者工具
【微信小程序毕业设计】食堂线上预约点餐系统源码(java+小程序+mysql+LW).zip
实现了首页、个人中心、学生管理、菜品分类管理、菜品管理、关于我们管理、意见反馈、系统管理、订单管理等。 项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 部署容器:tomcat7 小程序开发工具:hbuildx/微信开发者工具


