2022-08-23 21:12:59 +08:00

680 lines
28 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections;
using AIMSModel;
using AIMSObjectQuery;
using System.Collections.Generic;
using HelperDB;
namespace AIMSDAL
{
public partial class DAppliance
{
#region
/// <summary>
/// 插入
/// </summary>
/// <param name="cmd">Command对象</param>
/// <param name="appliance">实体类对象</param>
/// <returns>标识列值或影响的记录行数</returns>
public static int Insert(SqlCommand cmd, Appliance appliance)
{
cmd.Parameters.Clear();
cmd.CommandText = "insert into Appliance (Name,HCode,ApplianceType,UseRate,IsValid,OperatorId,OperatorTime,Remark) values (@Name,@HCode,@ApplianceType,@UseRate,@IsValid,@OperatorId,@OperatorTime,@Remark);select @@identity";
//从实体中取出值放入Command的参数列表
cmd.Parameters.Add(new SqlParameter("@Name", appliance.Name == null ? (object)DBNull.Value : (object)appliance.Name));
cmd.Parameters.Add(new SqlParameter("@HCode", appliance.HCode == null ? (object)DBNull.Value : (object)appliance.HCode));
cmd.Parameters.Add(new SqlParameter("@ApplianceType", appliance.ApplianceType.HasValue ? (object)appliance.ApplianceType.Value : (object)DBNull.Value));
cmd.Parameters.Add(new SqlParameter("@UseRate", appliance.UseRate.HasValue ? (object)appliance.UseRate.Value : (object)DBNull.Value));
cmd.Parameters.Add(new SqlParameter("@IsValid", appliance.IsValid.HasValue ? (object)appliance.IsValid.Value : (object)DBNull.Value));
cmd.Parameters.Add(new SqlParameter("@OperatorId", appliance.OperatorId.HasValue ? (object)appliance.OperatorId.Value : (object)DBNull.Value));
cmd.Parameters.Add(new SqlParameter("@OperatorTime", appliance.OperatorTime.HasValue ? (object)appliance.OperatorTime.Value : (object)DBNull.Value));
cmd.Parameters.Add(new SqlParameter("@Remark", appliance.Remark == null ? (object)DBNull.Value : (object)appliance.Remark));
return Convert.ToInt32(cmd.ExecuteScalar());
}
/// <summary>
/// 不使用事务的插入方法
/// </summary>
/// <param name="appliance">实体类对象</param>
/// <returns>标识列值或影响的记录行数</returns>
public static int Insert(Appliance appliance)
{
using (SqlConnection conn = new SqlConnection(Connection.ConnectionString))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
return Insert(cmd, appliance);
}
}
}
/// <summary>
/// 使用事务的插入方法
/// </summary>
/// <param name="connection">实现共享Connection的对象</param>
/// <param name="appliance">实体类对象</param>
/// <returns>标识列值或影响的记录行数</returns>
public static int Insert(Connection connection, Appliance appliance)
{
return Insert(connection.Command, appliance);
}
#endregion
#region
/// <summary>
/// 删除
/// </summary>
/// <param name="cmd">Command对象</param>
/// <param name="appliance">实体类对象</param>
/// <returns>影响的记录行数</returns>
public static int ExcuteDeleteCommand(SqlCommand cmd, Appliance appliance)
{
cmd.Parameters.Clear();
cmd.CommandText = "delete from Appliance where Id=@Id";
//从实体中取出值放入Command的参数列表
cmd.Parameters.Add(new SqlParameter("@Id", appliance.Id));
return cmd.ExecuteNonQuery();
}
/// <summary>
/// 不使用事务的删除方法
/// </summary>
/// <param name="appliance">实体类对象</param>
/// <returns>影响的记录行数</returns>
public static int Delete(Appliance appliance)
{
using (SqlConnection conn = new SqlConnection(Connection.ConnectionString))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
return ExcuteDeleteCommand(cmd, appliance);
}
}
}
/// <summary>
/// 使用事务的删除方法
/// </summary>
/// <param name="connection">实现共享Connection的对象</param>
/// <param name="appliance">实体类对象</param>
/// <returns>影响的记录行数</returns>
public static int Delete(Connection connection, Appliance appliance)
{
return ExcuteDeleteCommand(connection.Command, appliance);
}
/// <summary>
/// 执行删除命令
/// </summary>
/// <param name="cmd">Command对象</param>
/// <param name="oql">对象查询语句</param>
/// <param name="parameters">参数列表</param>
/// <returns>影响的记录行数</returns>
public static int ExcuteDeleteCommand(SqlCommand cmd, string oql, ParameterList parameters)
{
//解析过滤部份Sql语句
string filterString = SyntaxAnalyzer.ParseSql(oql, new ApplianceMap());
if (filterString != string.Empty)
{
filterString = " where " + filterString;
}
cmd.Parameters.Clear();
cmd.CommandText = "delete from Appliance " + filterString;
//添加参数
if (parameters != null)
{
foreach (string key in parameters.Keys)
{
cmd.Parameters.Add(new SqlParameter(key, parameters[key]));
}
}
return cmd.ExecuteNonQuery();
}
/// <summary>
/// 不使用事务的删除方法
/// </summary>
/// <param name="oql">对象查询语句</param>
/// <param name="parameters">参数列表</param>
/// <returns>影响的记录行数</returns>
public static int Delete(string oql, ParameterList parameters)
{
using (SqlConnection conn = new SqlConnection(Connection.ConnectionString))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
return ExcuteDeleteCommand(cmd, oql, parameters);
}
}
}
/// <summary>
/// 使用事务的删除方法
/// </summary>
/// <param name="connection">实现共享Connection的对象</param>
/// <param name="oql">对象查询语句</param>
/// <param name="parameters">参数列表</param>
/// <returns>影响的记录行数</returns>
public static int Delete(Connection connection, string oql, ParameterList parameters)
{
return ExcuteDeleteCommand(connection.Command, oql, parameters);
}
#endregion
#region
/// <summary>
/// 更新
/// </summary>
/// <param name="cmd">Command对象</param>
/// <param name="appliance">实体类对象</param>
/// <returns>影响的记录行数</returns>
public static int ExcuteUpdateCommand(SqlCommand cmd, Appliance appliance)
{
cmd.CommandText = "update Appliance set Name=@Name,HCode=@HCode,ApplianceType=@ApplianceType,UseRate=@UseRate,IsValid=@IsValid,OperatorId=@OperatorId,OperatorTime=@OperatorTime,Remark=@Remark where Id=@Id";
//从实体中取出值放入Command的参数列表
cmd.Parameters.Add(new SqlParameter("@Name", appliance.Name == null ? (object)DBNull.Value : (object)appliance.Name));
cmd.Parameters.Add(new SqlParameter("@HCode", appliance.HCode == null ? (object)DBNull.Value : (object)appliance.HCode));
cmd.Parameters.Add(new SqlParameter("@ApplianceType", appliance.ApplianceType.HasValue ? (object)appliance.ApplianceType.Value : (object)DBNull.Value));
cmd.Parameters.Add(new SqlParameter("@UseRate", appliance.UseRate.HasValue ? (object)appliance.UseRate.Value : (object)DBNull.Value));
cmd.Parameters.Add(new SqlParameter("@IsValid", appliance.IsValid.HasValue ? (object)appliance.IsValid.Value : (object)DBNull.Value));
cmd.Parameters.Add(new SqlParameter("@OperatorId", appliance.OperatorId.HasValue ? (object)appliance.OperatorId.Value : (object)DBNull.Value));
cmd.Parameters.Add(new SqlParameter("@OperatorTime", appliance.OperatorTime.HasValue ? (object)appliance.OperatorTime.Value : (object)DBNull.Value));
cmd.Parameters.Add(new SqlParameter("@Remark", appliance.Remark == null ? (object)DBNull.Value : (object)appliance.Remark));
cmd.Parameters.Add(new SqlParameter("@Id", appliance.Id));
return cmd.ExecuteNonQuery();
}
/// <summary>
/// 不使用事务的更新方法
/// </summary>
/// <param name="appliance">实体类对象</param>
/// <returns>影响的记录行数</returns>
public static int Update(Appliance appliance)
{
using (SqlConnection conn = new SqlConnection(Connection.ConnectionString))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
return ExcuteUpdateCommand(cmd, appliance);
}
}
}
/// <summary>
/// 使用事务的更新方法
/// </summary>
/// <param name="connection">实现共享Connection的对象</param>
/// <param name="appliance">实体类对象</param>
/// <returns>影响的记录行数</returns>
public static int Update(Connection connection, Appliance appliance)
{
return ExcuteUpdateCommand(connection.Command, appliance);
}
/// <summary>
/// 执行更新命令
/// </summary>
/// <param name="cmd">Command对象</param>
/// <param name="oql">对象查询语句</param>
/// <param name="parameters">参数列表</param>
/// <returns>影响的记录行数</returns>
public static int ExcuteUpdateCommand(SqlCommand cmd, string oql, ParameterList parameters)
{
//解析过滤部份Sql语句
string updateString = SyntaxAnalyzer.ParseSql(oql, new ApplianceMap());
cmd.CommandText = "update Appliance set " + updateString;
cmd.Parameters.Clear();
//添加参数
if (parameters != null)
{
foreach (string key in parameters.Keys)
{
cmd.Parameters.Add(new SqlParameter(key, parameters[key]));
}
}
return cmd.ExecuteNonQuery();
}
/// <summary>
/// 不使用事务的更新方法
/// </summary>
/// <param name="oql">对象查询语句</param>
/// <param name="parameters">参数列表</param>
/// <returns>影响的记录行数</returns>
public static int Update(string oql, ParameterList parameters)
{
using (SqlConnection conn = new SqlConnection(Connection.ConnectionString))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
return ExcuteUpdateCommand(cmd, oql, parameters);
}
}
}
/// <summary>
/// 使用事务的更新方法
/// </summary>
/// <param name="connection">实现共享Connection的对象</param>
/// <param name="oql">对象查询语句</param>
/// <param name="parameters">参数列表</param>
/// <returns>影响的记录行数</returns>
public static int Update(Connection connection, string oql, ParameterList parameters)
{
return ExcuteUpdateCommand(connection.Command, oql, parameters);
}
#endregion
#region
/// <summary>
/// 执行Command获取对象列表
/// </summary>
/// <param name="cmd">Command对象</param>
/// <param name="recursiveType">递归类型</param>
/// <param name="recursiveDepth">递归深度</param>
/// <returns>实体类对象列表</returns>
public static List<Appliance> ExcuteSelectCommand(SqlCommand cmd, RecursiveType recursiveType, int recursiveDepth)
{
List<Appliance> applianceList = new List<Appliance>();
using (SqlDataReader dr = cmd.ExecuteReader())
{
while (dr.Read())
{
Appliance appliance = DataReaderToEntity(dr);
applianceList.Add(appliance);
}
}
return applianceList;
}
/// <summary>
/// 执行查询命令
/// </summary>
/// <param name="cmd">Command对象</param>
/// <param name="oql">对象查询语句</param>
/// <param name="parameters">参数列表</param>
/// <param name="recursiveType">递归类型</param>
/// <param name="recursiveDepth">递归深度</param>
/// <returns>实体类对象集合</returns>
public static List<Appliance> ExcuteSelectCommand(SqlCommand cmd, string oql, ParameterList parameters, RecursiveType recursiveType, int recursiveDepth)
{
//解析过滤部份Sql语句
string filterString = SyntaxAnalyzer.ParseSql(oql, new ApplianceMap());
if (filterString != string.Empty)
{
if (filterString.Trim().ToLower().IndexOf("order ") != 0)
filterString = " where " + filterString;
}
cmd.Parameters.Clear();
cmd.CommandText = "select * from Appliance " + filterString;
//添加参数
if (parameters != null)
{
foreach (string key in parameters.Keys)
{
cmd.Parameters.Add(new SqlParameter(key, parameters[key]));
}
}
return ExcuteSelectCommand(cmd, recursiveType, recursiveDepth);
}
/// <summary>
/// 根据对象查询语句查询实体集合
/// </summary>
/// <returns>实体类对象集合</returns>
public static List<Appliance> Select()
{
using (SqlConnection conn = new SqlConnection(Connection.ConnectionString))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "select * from Appliance";
return ExcuteSelectCommand(cmd, RecursiveType.Parent, 1);
}
}
}
/// <summary>
/// 根据对象查询语句查询实体集合
/// </summary>
/// <param name="recursiveType">递归类型</param>
/// <param name="recursiveDepth">递归深度</param>
/// <returns>实体类对象集合</returns>
public static List<Appliance> Select(RecursiveType recursiveType, int recursiveDepth)
{
using (SqlConnection conn = new SqlConnection(Connection.ConnectionString))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "select * from Appliance";
return ExcuteSelectCommand(cmd, recursiveType, recursiveDepth);
}
}
}
/// <summary>
/// 根据对象查询语句查询实体集合
/// </summary>
/// <param name="oql">对象查询语句</param>
/// <param name="parameters">参数列表</param>
/// <returns>实体类对象集合</returns>
public static List<Appliance> Select(string oql, ParameterList parameters)
{
using (SqlConnection conn = new SqlConnection(Connection.ConnectionString))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
return ExcuteSelectCommand(cmd, oql, parameters, RecursiveType.Parent, 1);
}
}
}
/// <summary>
/// 根据对象查询语句查询实体集合
/// </summary>
/// <param name="oql">对象查询语句</param>
/// <param name="parameters">参数列表</param>
/// <param name="recursiveType">递归类型</param>
/// <param name="recursiveDepth">递归深度</param>
/// <returns>实体类对象集合</returns>
public static List<Appliance> Select(string oql, ParameterList parameters, RecursiveType recursiveType, int recursiveDepth)
{
using (SqlConnection conn = new SqlConnection(Connection.ConnectionString))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
return ExcuteSelectCommand(cmd, oql, parameters, recursiveType, recursiveDepth);
}
}
}
/// <summary>
/// 根据对象查询语句查询实体集合(启用事务)
/// </summary>
/// <param name="connection">连接对象</param>
/// <param name="oql">对象查询语句</param>
/// <param name="parameters">参数列表</param>
/// <param name="recursiveType">递归类型</param>
/// <param name="recursiveDepth">递归深度</param>
/// <returns>实体类对象集合</returns>
public static List<Appliance> Select(Connection connection, string oql, ParameterList parameters, RecursiveType recursiveType, int recursiveDepth)
{
return ExcuteSelectCommand(connection.Command, oql, parameters, recursiveType, recursiveDepth);
}
#endregion
#region
/// <summary>
/// 递归查询单个实体
/// </summary>
/// <param name="cmd">Command对象</param>
/// <param name="recursiveType">递归类型</param>
/// <param name="recursiveDepth">递归深度</param>
/// <returns>实体对象</returns>
public static Appliance ExcuteSelectSingleCommand(SqlCommand cmd, RecursiveType recursiveType, int recursiveDepth)
{
Appliance appliance = null;
using (SqlDataReader dr = cmd.ExecuteReader())
{
if (dr.Read())
appliance = DataReaderToEntity(dr);
}
if (appliance == null)
return appliance;
return appliance;
}
/// <summary>
/// 更据对象查询语句递归查询单个实体
/// </summary>
/// <param name="cmd">Command对象</param>
/// <param name="oql">对象查询语句</param>
/// <param name="parameters">参数列表</param>
/// <param name="recursiveType">递归类型</param>
/// <param name="recursiveDepth">递归深度</param>
/// <returns>实体对象</returns>
public static Appliance ExcuteSelectSingleCommand(SqlCommand cmd, string oql, ParameterList parameters, RecursiveType recursiveType, int recursiveDepth)
{
//解析过滤部份Sql语句
string filterString = SyntaxAnalyzer.ParseSql(oql, new ApplianceMap());
if (filterString != string.Empty)
{
filterString = " where " + filterString;
}
cmd.CommandText = "select * from Appliance " + filterString;
cmd.Parameters.Clear();
//添加参数
if (parameters != null)
{
foreach (string key in parameters.Keys)
{
cmd.Parameters.Add(new SqlParameter(key, parameters[key]));
}
}
return ExcuteSelectSingleCommand(cmd, recursiveType, recursiveDepth);
}
/// <summary>
/// 更据对象查询语句递归查询单个实体
/// </summary>
/// <param name="cmd">Command对象</param>
/// <param name="oql">对象查询语句</param>
/// <param name="parameters">参数列表</param>
/// <param name="recursiveType">递归类型</param>
/// <param name="recursiveDepth">递归深度</param>
/// <returns>实体对象</returns>
public static Appliance SelectSingle(string oql, ParameterList parameters, RecursiveType recursiveType, int recursiveDepth)
{
using (SqlConnection conn = new SqlConnection(Connection.ConnectionString))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
return ExcuteSelectSingleCommand(cmd, oql, parameters, recursiveType, recursiveDepth);
}
}
}
/// <summary>
/// 更据对象查询语句查询单个实体
/// </summary>
/// <param name="cmd">Command对象</param>
/// <param name="oql">对象查询语句</param>
/// <param name="parameters">参数列表</param>
/// <returns>实体对象</returns>
public static Appliance SelectSingle(string oql, ParameterList parameters)
{
return SelectSingle(oql, parameters, RecursiveType.Parent, 1);
}
/// <summary>
/// 更据对象查询语句并启用事务查询单个实体
/// </summary>
/// <param name="connection">连接对象</param>
/// <param name="oql">对象查询语句</param>
/// <param name="parameters">参数列表</param>
/// <returns>实体对象</returns>
public static Appliance SelectSingle(Connection connection, string oql, ParameterList parameters, RecursiveType recursiveType, int recursiveDepth)
{
return ExcuteSelectSingleCommand(connection.Command, oql, parameters, recursiveType, recursiveDepth);
}
/// <summary>
/// 更据主键值递归查询单个实体
/// </summary>
/// <param name="cmd">Command对象</param>
/// <param name="id">主键值</param>
/// <param name="recursiveType">递归类型</param>
/// <param name="recursiveDepth">递归深度</param>
/// <returns>实体对象</returns>
public static Appliance SelectSingle(SqlCommand cmd, int? id, RecursiveType recursiveType, int recursiveDepth)
{
cmd.Parameters.Clear();
if (id.HasValue)
{
cmd.CommandText = "select * from Appliance where Id=@pk";
cmd.Parameters.Add(new SqlParameter("@pk", id.Value));
}
else
{
cmd.CommandText = "select * from Appliance where Id is null";
}
return ExcuteSelectSingleCommand(cmd, recursiveType, recursiveDepth);
}
/// <summary>
/// 按主键字段查询特定实体
/// </summary>
/// <param name="id">主键值</param>
/// <returns>实体类对象</returns>
public static Appliance SelectSingle(int? id)
{
using (SqlConnection conn = new SqlConnection(Connection.ConnectionString))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
return SelectSingle(cmd, id, RecursiveType.Parent, 1);
}
}
}
/// <summary>
/// 按主键字段查询特定实体
/// </summary>
/// <param name="id">主键值</param>
/// <param name="recursiveType">递归类型</param>
/// <param name="recursiveDepth">递归深度</param>
/// <returns>实体类对象</returns>
public static Appliance SelectSingle(int? id, RecursiveType recursiveType, int recursiveDepth)
{
using (SqlConnection conn = new SqlConnection(Connection.ConnectionString))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
return SelectSingle(cmd, id, recursiveType, recursiveDepth);
}
}
}
/// <summary>
/// 使用事务并按主键字段查询特定实体
/// </summary>
/// <param name="connection">连接对象</param>
/// <param name="id">主键值</param>
/// <returns>实体类对象</returns>
public static Appliance SelectSingle(Connection connection, int? id, RecursiveType recursiveType, int recursiveDepth)
{
return SelectSingle(connection.Command, id, recursiveType, recursiveDepth);
}
#endregion
/// <summary>
/// 从DataReader中取出值生成实体对象
/// </summary>
/// <param name="searcher">查询对象</param>
/// <returns>过滤条件字符串</returns>
private static Appliance DataReaderToEntity(SqlDataReader dr)
{
Appliance entity = new Appliance();
if (dr["Id"] != System.DBNull.Value)
{
entity.Id = Convert.ToInt32(dr["Id"]);
}
if (dr["Name"] != System.DBNull.Value)
{
entity.Name = dr["Name"].ToString();
}
if (dr["HCode"] != System.DBNull.Value)
{
entity.HCode = dr["HCode"].ToString();
}
if (dr["ApplianceType"] != System.DBNull.Value)
{
entity.ApplianceType = Convert.ToInt32(dr["ApplianceType"]);
}
if (dr["UseRate"] != System.DBNull.Value)
{
entity.UseRate = Convert.ToInt32(dr["UseRate"]);
}
if (dr["IsValid"] != System.DBNull.Value)
{
entity.IsValid = Convert.ToInt32(dr["IsValid"]);
}
if (dr["OperatorId"] != System.DBNull.Value)
{
entity.OperatorId = Convert.ToInt32(dr["OperatorId"]);
}
if (dr["OperatorTime"] != System.DBNull.Value)
{
entity.OperatorTime = Convert.ToDateTime(dr["OperatorTime"]);
}
if (dr["Remark"] != System.DBNull.Value)
{
entity.Remark = dr["Remark"].ToString();
}
return entity;
}
/// <summary>
/// 根据名称或助记码关键字得到器械
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static DataTable GetApplianiceByName(string str, int type)
{
string sql = string.Empty;
if (str.Equals("") || str.Equals(null))
{
if (type == -1)
{
sql = string.Format("select * from Appliance where IsValid=1");
}
else
{
sql = string.Format("select * from Appliance where IsValid=1 and ApplianceType={0}", type);
}
}
else
{
if (type == -1)
{
sql = string.Format("select * from Appliance where IsValid=1 and (Name like '%{0}%' or HCode like '%{0}%')", str, type);
}
else
{
sql = string.Format("select * from Appliance where IsValid=1 and ApplianceType={1} and (Name like '%{0}%' or HCode like '%{0}%')", str, type);
}
}
return DBHelper.GetDataTable(sql);
}
/// <summary>
/// 根据Id字符串得到器械字符串为“123”
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
public static DataTable GetApplianiceByIds(string ids)
{
if (ids != null && ids.Length > 0)
{
string sql = string.Format("select * from Appliance where Id in({0}) order by charindex(','+rtrim(cast(id as varchar(10)))+',',',{0},')", ids);//IsValid=1 and
return DBHelper.GetDataTable(sql);
}
else
{
string sql = string.Format("select * from Appliance where 1<>1 ");
return DBHelper.GetDataTable(sql);
}
}
}
}