ylbtech-funcation-util: C# 復雜條件查詢(sql 復雜條件查詢)查詢解決方案 |
C# 復雜條件查詢(sql 復雜條件查詢)查詢解決方案
1.A,Ylbtech.Model返回頂部 |
A.1,DepartmentInfo.cs

using System; namespace Ylbtech.Model { /// <summary> ///DepartmentInfo 的摘要說明 ///desc: 部門表 /// </summary> public class DepartmentInfo { /// <summary> /// 1,編號【PK】 /// </summary> public int DepartmentId { get; set; } /// <summary> /// 部門名稱 /// </summary> public string DepartmentName { get; set; } public DepartmentInfo() { // //TODO: 在此處添加構造函數邏輯 // } } }
A.2,EmployeeInfo.cs

using System; namespace Ylbtech.Model { /// <summary> ///EmployeeInfo 的摘要說明 ///desc:員工表 /// </summary> public class EmployeeInfo : DepartmentInfo { /// <summary> /// 1,編號【PK】 /// </summary> public int EmployeeId { get; set; } /// <summary> /// 身份證號 /// </summary> public string Id { get; set; } /// <summary> /// 姓名 /// </summary> public string Username { get; set; } /// <summary> /// 性別【C】男,女 /// </summary> public string Sex { get; set; } /// <summary> /// 銀行卡號 /// </summary> public string CardNo { get; set; } /// <summary> /// ,6 受雇日期 /// </summary> public string HireDate { get; set; } /// <summary> /// 部門編號【Fk】 /// </summary> public int DepartmentId { get; set; } /// <summary> /// 狀態(正式內、正式外、中心版) /// </summary> public string State { get; set; } /// <summary> /// 轉正日期 /// </summary> public string ToRegularDate { get; set; } /// <summary> /// 地址 /// </summary> public string Address { get; set; } /// <summary> /// 自有/租住 /// </summary> public string IsRent { get; set; } /// <summary> /// 電話 /// </summary> public string TelNo { get; set; } /// <summary> /// FuJia:孩子的個數 /// </summary> public int ChildrenNumber { get; set; } /// <summary> /// 兒童節發放金額 /// </summary> public Decimal ChildrenMoney { get; set; } /// <summary> /// 序號 /// </summary> public int SerialNumber { get; set; } /// <summary> /// 普通假日支付金額 /// </summary> public Decimal PaymentAmount { get; set; } /// <summary> /// 奶粉費 /// </summary> public Decimal NaiFenFei { get; set; } /// <summary> /// 醫療費用 /// </summary> public Decimal YiLiaoFeiYong { get; set; } /// <summary> /// 合計 /// </summary> public Decimal Total { get; set; } /// <summary> /// 文體費 /// </summary> public Decimal WenTiFei { get; set; } /// <summary> /// 健身費 /// </summary> public Decimal JianShenFei { get; set; } /// <summary> /// 衛生費【只有女職工有】 /// </summary> public Decimal WeiShengFei { get; set; } /// <summary> /// 家財 /// </summary> public Decimal JiaCai { get; set; } /// <summary> /// 人身意外 /// </summary> public Decimal RenShenYiWai { get; set; } /// <summary> /// 女性特種疾病 /// </summary> public Decimal NvXingTeZhongJiBing { get; set; } /// <summary> /// 交通意外 /// </summary> public Decimal JiaoTongYiWai { get; set; } public EmployeeInfo() { // //TODO: 在此處添加構造函數邏輯 // } } }
1.B,Ylbtech.DAL返回頂部 |
B.1,Employee.cs
using System; using System.Collections.Generic; using System.Linq; using Ylbtech.Model; using Microsoft.DBUtility; using System.Text; using System.Data.SqlClient; using Ylbtech.Common; namespace Ylbtech.DAL { /// <summary> ///Employee 的摘要說明 ///desc:員工操作類 ///author:yuanbo ///date:2013-6-12 /// </summary> public class Employee { /// <summary> /// ylb:查詢員工信息 /// </summary> /// <param name="dalEmployee"></param> /// <returns></returns> public static IList<EmployeeInfo> GetAllSearch(EmployeeInfo dalEmployee) { IList<EmployeeInfo> dals = new List<EmployeeInfo>(); string sql = "select employeeId,[id],username,sex,cardNo" + ",hireDate,e.departmentId,state,ToRegularDate,d.departmentName from Employee e inner join Department d on e.departmentId=d.departmentId"; StringBuilder sbSql = new StringBuilder(); sbSql.Append(sql); IList<SqlParameter> sqlParamI = new List<SqlParameter>(); if (dalEmployee.EmployeeId != 0) /*單一查詢條件*/ { sqlParamI.Add(new SqlParameter("@employeeId", dalEmployee.EmployeeId)); sbSql.Append(" where employeeId=@employeeId"); } else if (dalEmployee.Id.Length > 0) /*單一查詢條件*/ { sqlParamI.Add(new SqlParameter("@id", dalEmployee.Id)); sbSql.Append(" where [id]=@id"); } else /*復合條件查詢*/ { sbSql.Append(" where 1=1"); if (dalEmployee.Username.Length > 0) { sbSql.Append(" and username=@username"); sqlParamI.Add(new SqlParameter("@username", dalEmployee.Username)); } if (dalEmployee.Sex != "-1") { sbSql.Append(" and sex=@sex"); sqlParamI.Add(new SqlParameter("@sex", dalEmployee.Sex)); } if (dalEmployee.CardNo.Length > 0) { sbSql.Append(" and cardNo=@cardNo"); sqlParamI.Add(new SqlParameter("@cardNo", dalEmployee.CardNo)); } DateTime hireDate; if (DateTime.TryParse(dalEmployee.HireDate, out hireDate)) { sbSql.Append(" and hiredate=@hiredate"); sqlParamI.Add(new SqlParameter("@hiredate", hireDate)); } if (dalEmployee.DepartmentId != -1) { sbSql.Append(" and e.departmentId=@departmentId"); sqlParamI.Add(new SqlParameter("@departmentId", dalEmployee.DepartmentId)); } if (dalEmployee.State != "-1") { sbSql.Append(" and state=@state"); sqlParamI.Add(new SqlParameter("@state", dalEmployee.State)); } DateTime toRegularDate; if (DateTime.TryParse(dalEmployee.ToRegularDate, out toRegularDate)) { sbSql.Append(" and toRegularDate=@toRegularDate"); sqlParamI.Add(new SqlParameter("@toRegularDate", dalEmployee.ToRegularDate)); } } sbSql.Append(" order by employeeId desc"); SqlParameter[] sqlParam = new SqlParameter[sqlParamI.Count]; //A:方式一 //for (int i = 0; i < sqlParamI.Count; i++) //{ // sqlParam[i] = sqlParamI[i]; //} //A:方式二 sqlParam = sqlParamI.ToArray(); using (SqlDataReader sdr = SqlHelper.ExecuteReader(SqlHelper.ConnStr_WelfareSystem, System.Data.CommandType.Text, sbSql.ToString(), sqlParam)) { while (sdr.Read()) { EmployeeInfo dal = new EmployeeInfo() { EmployeeId = sdr.GetInt32(0), Id = sdr[1] == System.DBNull.Value ? "" : sdr.GetString(1), Username = sdr[2] == System.DBNull.Value ? "" : sdr.GetString(2), Sex = sdr[3] == System.DBNull.Value ? "" : sdr.GetString(3), CardNo = sdr[4] == System.DBNull.Value ? "" : sdr.GetString(4), HireDate = DateTimeFun.DateTimeConvertToyyyy_MM_dd(sdr[5] == System.DBNull.Value ? "" : sdr.GetString(5)), DepartmentId = sdr.GetInt32(6), State = sdr[7] == System.DBNull.Value ? "" : sdr.GetString(7), ToRegularDate = DateTimeFun.DateTimeConvertToyyyy_MM_dd(sdr[8] == System.DBNull.Value ? "" : sdr.GetString(8)), DepartmentName = sdr[9] == System.DBNull.Value ? "" : sdr.GetString(9) }; dals.Add(dal); } } return dals; } public Employee() { // //TODO: 在此處添加構造函數邏輯 // } } }
1.C,Ylbtech.DBUtility返回頂部 |
C.SqlHelper.cs [略]
1.D,Ylbtech.Common返回頂部 |
D.1,DateTiemFun.cs
using System; namespace Ylbtech.Common { /// <summary> ///DateTimeFun 的摘要說明 ///日期操作相關函數 /// </summary> public class DateTimeFun { /// <summary> /// 1,判斷字符串是否日期類型。如果是則轉換為 yyyy-MM-dd,否則 賦值於 "" /// </summary> /// <param name="strDate"></param> /// <returns></returns> public static string DateTimeConvertToyyyy_MM_dd(string strDate) { string date = ""; DateTime toRegularDate; if (DateTime.TryParse(strDate.Trim(), out toRegularDate)) { date = toRegularDate.ToString("yyyy-MM-dd"); } return date; } public DateTimeFun() { // //TODO: 在此處添加構造函數邏輯 // } } }
1.E,Additional data返回頂部 |
E.1,/App_Data

use master go -- ============================================= -- DatabaseName: WelfareSystem -- remark: 福利發放系統 -- author: YuanBo -- date: 09:51 2013-03-26 -- ============================================= IF EXISTS (SELECT * FROM master..sysdatabases WHERE name = N'WelfareSystem') DROP DATABASE WelfareSystem GO CREATE DATABASE WelfareSystem GO use WelfareSystem go -- ============================================= -- ylb:1,部門表 -- ============================================= create table Department ( departmentId int primary key identity(100,1), --編號【PK】 departmentName varchar(100) --部門名稱 ) go -- ============================================= -- ylb:2,員工表 -- ============================================= create table Employee ( employeeId int primary key identity(1001,1), --編號【PK】 [id] varchar(18), --身份證號 username varchar(40), --姓名 sex varchar(5) check(sex='男'or sex='女'),--性別 cardNo varchar(22), --銀行卡號 hireDate datetime, --受雇日期 departmentId int, --部門編號 [state] varchar(8), --員工性質(正式內,正式入,中心版) toRegularDate varchar(20), --轉正日期 [address] varchar(200), --地址 isRent varchar(20), --自住/租房 telNo varchar(20) --家庭電話 ) print'福利發放系統創建成功!'
![]() |
作者:ylbtech 出處:http://ylbtech.cnblogs.com/ 本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。 |