zoukankan      html  css  js  c++  java
  • 写给我自己的“增删改查”

          曾经很多次的拿增删改查功能来学习编程,从winform到webform。不能说厌倦了这种重复的练习,自从上次写完一个小程序之后,总想着总结一下。

      需求:对一个医院职工的信息做增删改查,至于UI界面,由于个人审美问题,就不讲究了。

      思路:用三层管理,用html页面展示数据,通过Ajax向一般处理程序发送请求,JavaScript实现分页,用JQuery和JQueryUI实现弹窗。

      过程:

      1、在MSSqlServer新建一个数据库,建一个空表。由于个人习惯,所以手写sql,如下:

        

    新建数据库并新表
     1 CREATE DATABASE [Client] 
     2 ON  
     3 ( 
     4    NAME = N'Client', 
     5    FILENAME = 'D:\database\Client.mdf' , 
     6    SIZE = 3072KB ,  
     7    MAXSIZE = 10240KB , FILEGROWTH = 10%)
     8  LOG ON 
     9 ( 
    10    NAME = N'Client_log', 
    11    FILENAME = 'D:\database\Client_log.ldf' ,
    12    SIZE = 3072KB ,
    13    MAXSIZE = 10240KB , 
    14    FILEGROWTH = 10%
    15 )
    16 GO
    17 Use Client
    18 CREATE TABLE [MedClient]
    19 (
    20    [Id] [uniqueidentifier] NOT NULL,
    21    [ClientCode] [nvarchar](10) NOT NULL,
    22    [ClientName] [nvarchar](10) NOT NULL,
    23    [Sex] [bit] NULL,
    24    [BirthDate] [date] NOT NULL,
    25    [ChuFangPermit] [nvarchar](1) NULL,
    26    [DuMaPermit] [nvarchar](1) NULL,
    27    [JingMaPermit] [nvarchar](1) NULL,
    28    [IsDel] [bit] NULL
    29 )

       2、在VS2010中建立三层,手头没有代码生成器,只好手敲。

               

    Model代码
     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 
     6 namespace Model
     7 {
     8     public partial  class MedClientModel
     9     {
    10         Guid id;
    11 
    12         public Guid Id
    13         {
    14             get { return id; }
    15             set { id = value; }
    16         }
    17         //员工编号
    18         string clientCode;
    19 
    20         public string ClientCode
    21         {
    22             get { return clientCode; }
    23             set { clientCode = value; }
    24         }
    25         //员工姓名
    26         string clientName;
    27 
    28         public string ClientName
    29         {
    30             get { return clientName; }
    31             set { clientName = value; }
    32         }
    33         //性别
    34         bool? sex;
    35 
    36         public bool? Sex
    37         {
    38             get { return sex; }
    39             set { sex = value; }
    40         }
    41         //出生日期
    42         DateTime birthDate;
    43 
    44         public DateTime BirthDate
    45         {
    46             get { return birthDate; }
    47             set { birthDate = value; }
    48         }
    49         //处方权限
    50         string chuFangPermit;
    51 
    52         public string ChuFangPermit
    53         {
    54             get { return chuFangPermit; }
    55             set { chuFangPermit = value; }
    56         }
    57         //毒麻权限
    58         string duMaPermit;
    59 
    60         public string DuMaPermit
    61         {
    62             get { return duMaPermit; }
    63             set { duMaPermit = value; }
    64         }
    65         //精麻权限
    66         string jingMaPermit;
    67 
    68         public string JingMaPermit
    69         {
    70             get { return jingMaPermit; }
    71             set { jingMaPermit = value; }
    72         }
    73         //是否删除
    74         bool isDel;
    75 
    76         public bool IsDel
    77         {
    78             get { return isDel; }
    79             set { isDel = value; }
    80         }
    81     }
    82 }
    Dal层代码,含SqlHelper
      1 using System;
      2 using System.Collections.Generic;
      3 using System.Linq;
      4 using System.Text;
      5 using System.Data.SqlClient;
      6 using System.Collections;
      7 using System.Data;
      8 
      9 namespace Dal
     10 {
     11     public partial class MedClientDal
     12     {
     13 
     14         #region 添加 public int AddNew(Model.MedClientModel model)
     15         public int AddNew(Model.MedClientModel model)
     16         {
     17             string sql = @"insert into MedClient values(@id,@clientcode,@clientname,
     18                             @sex,@birthdate,@chufang,@duma,@jingma,@isdel)";
     19             SqlParameter[] paras = new SqlParameter[] { 
     20                 new SqlParameter("@id",model.Id),
     21                 new SqlParameter("@clientcode",model.ClientCode),
     22                 new SqlParameter("@clientname",model.ClientName),
     23                 new SqlParameter("@sex",model.Sex),
     24                 new SqlParameter("@birthdate",model.BirthDate),
     25                 new SqlParameter("@chufang",model.ChuFangPermit==null?(object)DBNull.Value:model.ChuFangPermit),
     26                 new SqlParameter("@duma",model.DuMaPermit==null?(object)DBNull.Value:model.DuMaPermit),
     27                 new SqlParameter("@jingma",model.JingMaPermit==null?(object)DBNull.Value:model.JingMaPermit),
     28                 new SqlParameter("@isdel",model.IsDel)
     29             };
     30             return SqlHelper.ExecuteNonquery(sql, paras);
     31         }
     32         #endregion
     33 
     34         #region 删除 public int DeleteModel(Guid id)
     35         public int DeleteModel(Guid id)
     36         {
     37             string sql = "update MedClient set isdel=1 where id=@id";
     38             SqlParameter para = new SqlParameter("@id", id);
     39             return SqlHelper.ExecuteNonquery(sql, para);
     40         }
     41         #endregion
     42 
     43         #region 更新 public int UpdateModel(Model.MedClientModel model)
     44         public int UpdateModel(Model.MedClientModel model)
     45         {
     46             string sql = @"update MedClient set clientcode=@clientcode,clientname=@clientname,
     47                             sex=@sex,birthdate=@birthdate,chufangpermit=@chufang,dumapermit=@duma,
     48                             jingmapermit=@jingma,isdel=@isdel where id=@id";
     49             SqlParameter[] paras = new SqlParameter[] { 
     50                 new SqlParameter("@id",model.Id),
     51                 new SqlParameter("@clientcode",model.ClientCode),
     52                 new SqlParameter("@clientname",model.ClientName),
     53                 new SqlParameter("@sex",model.Sex==null?(object)DBNull.Value:model.Sex),
     54                 new SqlParameter("@birthdate",model.BirthDate),
     55                 new SqlParameter("@chufang",model.ChuFangPermit==null?(object)DBNull.Value:model.ChuFangPermit),
     56                 new SqlParameter("@duma",model.DuMaPermit==null?(object)DBNull.Value:model.DuMaPermit),
     57                 new SqlParameter("@jingma",model.JingMaPermit==null?(object)DBNull.Value:model.JingMaPermit),
     58                 new SqlParameter("@isdel",model.IsDel)
     59             };
     60             return SqlHelper.ExecuteNonquery(sql, paras);
     61         }
     62         #endregion
     63 
     64         #region 根据id获取对象实体 public Model.MedClientModel GetModel(Guid id)
     65         public Model.MedClientModel GetModel(Guid id)
     66         {
     67             string sql = "select * from MedClient where id=@id";
     68             SqlParameter para = new SqlParameter("@id", id);
     69             Model.MedClientModel model = null;
     70             using (SqlDataReader reader = SqlHelper.ExecuteReader(sql, para))
     71             {
     72                 if (reader.HasRows)
     73                 {
     74                     model = new Model.MedClientModel();
     75                     reader.Read();
     76                     ReaderModel(reader, model);
     77                 }
     78             }
     79             return model;
     80         }
     81         #endregion
     82 
     83         #region 根据员工编号获取对象实体 public Model.MedClientModel GetModel(string clientCode)
     84         public Model.MedClientModel GetModel(string clientCode)
     85         {
     86             string sql = "select * from MedClient where clientcode=@clientcode";
     87             SqlParameter para = new SqlParameter("@clientcode", clientCode);
     88             Model.MedClientModel model = null;
     89             using (SqlDataReader reader = SqlHelper.ExecuteReader(sql, para))
     90             {
     91                 if (reader.HasRows)
     92                 {
     93                     model = new Model.MedClientModel();
     94                     reader.Read();
     95                     ReaderModel(reader, model);
     96                 }
     97             }
     98             return model;
     99         }
    100         #endregion
    101 
    102         #region 读取对象数据 public void ReaderModel(SqlDataReader reader, Model.MedClientModel model)
    103         public void ReaderModel(SqlDataReader reader, Model.MedClientModel model)
    104         {
    105             if (!reader.IsDBNull(0))
    106             {
    107                 model.Id = reader.GetGuid(0);
    108             }
    109             if (!reader.IsDBNull(1))
    110             {
    111                 model.ClientCode = reader.GetString(1);
    112             }
    113             if (!reader.IsDBNull(2))
    114             {
    115                 model.ClientName = reader.GetString(2);
    116             }
    117             if (!reader.IsDBNull(3))
    118             {
    119                 model.Sex = reader.GetBoolean(3);
    120             }
    121             if (!reader.IsDBNull(4))
    122             {
    123                 model.BirthDate = reader.GetDateTime(4);
    124             }
    125             if (!reader.IsDBNull(5))
    126             {
    127                 model.ChuFangPermit = reader.GetString(5);
    128             }
    129             if (!reader.IsDBNull(6))
    130             {
    131                 model.DuMaPermit = reader.GetString(6);
    132             }
    133             if (!reader.IsDBNull(7))
    134             {
    135                 model.JingMaPermit = reader.GetString(7);
    136             }
    137             if (!reader.IsDBNull(8))
    138             {
    139                 model.IsDel = reader.GetBoolean(8);
    140             }
    141         }
    142         #endregion
    143 
    144         #region 获取符合条件的数据条数 public int GetModelCountByWhere(string name, string code, bool? sex)
    145         public int GetModelCountByWhere(string name, string code, bool? sex)
    146         {
    147             StringBuilder  sql = new StringBuilder("select count(id) from MedClient where isDel=0 ");
    148             List<SqlParameter> list = new List<SqlParameter>();
    149             if (!string.IsNullOrEmpty(name))
    150             {
    151                 sql.Append("and clientname=@name ");
    152                 list.Add(new SqlParameter("@name",name));
    153             }
    154             if (!string.IsNullOrEmpty(code))
    155             {
    156                 sql.Append("and clientcode=@code ");
    157                 list.Add(new SqlParameter("@code",code));
    158             }
    159             if (sex != null)
    160             {
    161                 sql.Append("and sex=@sex");
    162                 list.Add(new SqlParameter("@sex",sex.Value));
    163             }
    164             return Convert.ToInt32(SqlHelper.ExecuteScalar(sql.ToString(),list.ToArray()));
    165         }
    166         #endregion
    167 
    168         #region 根据条件查询数据 public IEnumerable<Model.MedClientModel> GetModelListByWhere(int pageIndex, int pageSize, out int pageCount, out int sum,string name,bool? sex,string code)
    169         public IEnumerable<Model.MedClientModel> GetModelListByWhere(int pageIndex, int pageSize, out int pageCount, out int sum,string name,bool? sex,string code)
    170         {
    171             List<Model.MedClientModel> list = new List<Model.MedClientModel>();
    172             sum = GetModelCountByWhere(name, code, sex);
    173             if (sum <= 0)
    174             {
    175                 pageCount = 0;
    176                 return list;
    177             }
    178             pageCount = Convert.ToInt32(Math.Ceiling(sum*1.0/pageSize));
    179             StringBuilder sql = new StringBuilder("select * from (select *,row_number()over(order by clientcode) as row from MedClient where isdel=0 ");
    180             List<SqlParameter> paras = new List<SqlParameter>() { new SqlParameter("@pageIndex",pageIndex),
    181                 new SqlParameter("@pageSize",pageSize), };
    182             if (!string.IsNullOrEmpty(name))
    183             {
    184                 sql.Append("and clientname=@name ");
    185                 paras.Add(new SqlParameter("@name", name));
    186             }
    187             if (!string.IsNullOrEmpty(code))
    188             {
    189                 sql.Append("and clientcode=@code ");
    190                 paras.Add(new SqlParameter("@code", code));
    191             }
    192             if (sex != null)
    193             {
    194                 sql.Append("and sex=@sex");
    195                 paras.Add(new SqlParameter("@sex", sex.Value));
    196             }
    197             sql.Append(") as c where c.row between (@pageIndex-1)*@pageSize+1 and @pageIndex*@pageSize");
    198             using (SqlDataReader reader = SqlHelper.ExecuteReader(sql.ToString(), paras.ToArray()))
    199             {
    200                 
    201                 if (reader.HasRows)
    202                 {
    203                     while (reader.Read())
    204                     {
    205                         Model.MedClientModel model = new Model.MedClientModel();
    206                         ReaderModel(reader, model);
    207                         list.Add(model);
    208                     }
    209                 }
    210             }
    211             return list;
    212         }
    213         #endregion
    214 
    215         #region 查询所有数据 public IEnumerable<Model.MedClientModel> GetModelList()
    216         public IEnumerable<Model.MedClientModel> GetModelList()
    217         {
    218             string sql = "select * from MedClient where isdel=1";
    219             List<Model.MedClientModel> list = new List<Model.MedClientModel>();
    220             using (SqlDataReader reader = SqlHelper.ExecuteReader(sql))
    221             {
    222                 
    223                 if (reader.HasRows)
    224                 {
    225                     while (reader.Read())
    226                     {
    227                         Model.MedClientModel model = new Model.MedClientModel();
    228                         ReaderModel(reader,model);
    229                         list.Add(model);
    230                     }
    231                 }
    232             }
    233             return list;
    234         }
    235         #endregion
    236 
    237            }
    238 }
    239 
    240 
    241 
    242 using System;
    243 using System.Collections.Generic;
    244 using System.Linq;
    245 using System.Text;
    246 using System.Configuration;
    247 using System.Data.SqlClient;
    248 using System.Data;
    249 
    250 namespace Dal
    251 {
    252     public static class SqlHelper
    253     {
    254         // 连接字符串
    255         static string connStr = ConfigurationManager.ConnectionStrings["SQL"].ConnectionString;
    256         //执行增删改操作
    257         public static int ExecuteNonquery(string sql, params SqlParameter[] paras)
    258         {
    259             using (SqlConnection conn = new SqlConnection(connStr))
    260             {
    261                 using (SqlCommand cmd = new SqlCommand(sql,conn))
    262                 {
    263                     cmd.Parameters.AddRange(paras);
    264                     if (conn.State == ConnectionState.Closed)
    265                     {
    266                         conn.Open();
    267                     }
    268                     return cmd.ExecuteNonQuery();
    269                 }
    270 
    271                 
    272             }
    273         }
    274         //获取首行首列
    275         public static object ExecuteScalar(string sql, params SqlParameter[] paras)
    276         {
    277             using (SqlConnection conn = new SqlConnection(connStr))
    278             {
    279                 using (SqlCommand cmd = new SqlCommand(sql, conn))
    280                 {
    281                     cmd.Parameters.AddRange(paras);
    282                     if (conn.State == ConnectionState.Closed)
    283                     {
    284                         conn.Open();
    285                     }
    286                     return cmd.ExecuteScalar();
    287                 }
    288             }
    289         }
    290         //逐行读取数据
    291         public static SqlDataReader ExecuteReader(string sql, params SqlParameter[] paras)
    292         {
    293             SqlDataReader reader = null;
    294             SqlConnection conn = new SqlConnection(connStr);
    295             using (SqlCommand cmd = new SqlCommand(sql, conn))
    296             {
    297                 cmd.Parameters.AddRange(paras);
    298                 if (conn.State == ConnectionState.Closed)
    299                 {
    300                     conn.Open();
    301                 }
    302                 reader=cmd.ExecuteReader(CommandBehavior.CloseConnection);
    303 
    304             }
    305             return reader;
    306         }
    307         //DataTable读取数据
    308         public static DataTable ExecuteTable(string sql, params SqlParameter[] paras)
    309         {
    310             DataTable dt = new DataTable();
    311             using (SqlDataAdapter adapter = new SqlDataAdapter(sql, connStr))
    312             {
    313                 adapter.SelectCommand.Parameters.AddRange(paras);
    314                 adapter.Fill(dt);
    315             }
    316             return dt;
    317         }
    318     }
    319 }
    Bll层代码
     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 
     6 namespace Bll
     7 {
     8     public partial class MedClientBll
     9     {
    10         Dal.MedClientDal dal = new Dal.MedClientDal();
    11         #region 新增 public bool AddNew(Model.MedClientModel model)
    12         public bool AddNew(Model.MedClientModel model)
    13         {
    14             return dal.AddNew(model)>0;
    15         }
    16         #endregion
    17 
    18         #region 删除 public bool DeleteModel(Guid id)
    19         public bool DeleteModel(Guid id)
    20         {
    21             return dal.DeleteModel(id)>0;
    22         }
    23         #endregion
    24 
    25         #region 修改 public bool UpdateModel(Model.MedClientModel model)
    26         public bool UpdateModel(Model.MedClientModel model)
    27         {
    28             return dal.UpdateModel(model)>0;
    29         }
    30         #endregion
    31 
    32         #region 通过id获取对象 public Model.MedClientModel GetModel(Guid id)
    33         public Model.MedClientModel GetModel(Guid id)
    34         {
    35             return dal.GetModel(id);
    36         }
    37         #endregion
    38 
    39         #region 通过员工编号获取对象 public Model.MedClientModel GetModel(string code)
    40         public Model.MedClientModel GetModel(string code)
    41         {
    42             return dal.GetModel(code);
    43         }
    44         #endregion
    45 
    46       
    47 
    48         #region 获取查询数据 public IEnumerable<Model.MedClientModel> GetModelListByWhere(int pageIndex, int pageSize, out int pageCount, out int sum, string name, bool? sex, string code)
    49         public IEnumerable<Model.MedClientModel> GetModelListByWhere(int pageIndex, int pageSize, out int pageCount, out int sum, string name, bool? sex, string code)
    50         {
    51             return dal.GetModelListByWhere(pageIndex, pageSize, out pageCount, out  sum,  name,  sex,code);
    52         }
    53         #endregion
    54     }
    55 }

        分页查询的功能本来是用存储过程来完成的,后来做了一些改动,把它和按条件查询由一个方法完成,变成了现在用StringBuilder拼接Sql语句的形式。懒得再改存储过程了。

      3、UI层

        习惯性的新建了一个Html页面,一个一般处理程序,引用JQuery和JQueryUI,以及Css文件

        

    Html页面
      1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      2 <html xmlns="http://www.w3.org/1999/xhtml">
      3 <head>
      4     <title>医院职工信息</title>
      5   
      6 </head>
      7 <body>
      8 
      9     <a href="javascript:showDialog('新增','add','0')">新增</a>&nbsp;&nbsp;
     10     <a href="javascript:search()">查询</a>&nbsp;&nbsp;
     11     <a href="javascript:searchAll()" id="allshow" style="display:none">全部</a>
     12     <div id="dvList">
     13         <table id="tbList" cellpadding="0" cellspacing="0">
     14             <tr>
     15                 <th>
     16                     员工编号
     17                 </th>
     18                 <th>
     19                     姓名
     20                 </th>
     21                 <th>
     22                     性别
     23                 </th>
     24                 <th>
     25                     出生日期
     26                 </th>
     27                 <th>
     28                     处方权限
     29                 </th>
     30                 <th>
     31                     毒麻权限
     32                 </th>
     33                 <th>
     34                     精麻权限
     35                 </th>
     36                 <th>
     37                     操作
     38                 </th>
     39             </tr>
     40         </table>
     41     </div>
     42     <div id="page" class="pager">
     43     </div>
     44     <div id="dialog-confirm" style="display: none">
     45         <table id="diaTable">
     46             <tr>
     47                 <td>
     48                     员工编号:
     49                 </td>
     50                 <td align="left">
     51                     <input type="text" id="txtCode" />
     52                     <span><img alt="员工编号可用" id="dui" src="/css/ui-lightness/images/dui.ico" width="15px" height="15px" style="display:none"/>
     53                     <img id="cuo" alt="员工编号不可用" src="/css/ui-lightness/images/cha.ico" width="15px" height="15px" style="display:none"/></span>
     54                 </td>
     55                 
     56             </tr>
     57             <tr>
     58                 <td align="right">
     59                     姓名:
     60                 </td>
     61                 <td align="left">
     62                     <input type="text" id="txtName" />
     63                 </td>
     64             </tr>
     65             <tr>
     66                 <td align="right">
     67                     性别:
     68                 </td>
     69                 <td align="left">
     70                     <input type="radio" name="sex" id="male" value="1" /> 71                     <input type="radio" name="sex" id="female" value="0" /> 72                 </td>
     73             </tr>
     74             <tr>
     75                 <td align="right">
     76                     出生日期:
     77                 </td>
     78                 <td align="left">
     79                     <input type="text" id="datepicker" />
     80                 </td>
     81             </tr>
     82             <tr>
     83                 <td colspan="2">
     84                     <fieldset>
     85                         <legend>权限</legend>
     86                         <input type="checkbox" id="chu" />处方权限
     87                         <input type="checkbox" id="du" />毒麻权限
     88                         <input type="checkbox" id="jing" />精麻权限
     89                     </fieldset>
     90                 </td>
     91             </tr>
     92         </table>
     93         <br />
     94         <span id="msg" class="spmsg"></span>
     95     </div>
     96     <div id="search" style="display: none">
     97     <table>
     98         <tr>
     99             <td>员工编号:</td>
    100             <td><input id="searchCode" type="text"/></td>
    101             </tr>
    102             <tr>
    103             <td>员工姓名:</td>
    104             <td><input type="text" id="searchName"/></td></tr>
    105             <tr>
    106             <td>性别:</td>
    107             <td><input type="radio" name="searchSex" id="searchMale" value="1" />108                     <input type="radio" name="searchSex" id="searchFemale" value="0" />109                     </td>
    110                     </tr>
    111         
    112     </table>
    113     </div>
    114 </body>
    115 <link href="css/ui-lightness/jquery-ui-1.8.2.custom.css" rel="stylesheet" type="text/css" />
    116     <link href="css/page.css" rel="stylesheet" type="text/css" />
    117     <script src="js/JScriptHelper.js" type="text/javascript"></script>
    118     <script src="js/jquery-1.4.2.min.js" type="text/javascript"></script>
    119     <script src="js/jquery-ui-1.8.2.custom.min.js" type="text/javascript"></script>
    120     <script src="js/JScriptMedClient.js" type="text/javascript"></script>
    121 </html>
    122   
    一般处理程序
      1 using System;
      2 using System.Collections.Generic;
      3 using System.Linq;
      4 using System.Web;
      5 using System.Web.Script.Serialization;
      6 
      7 namespace MedClient.Handler
      8 {
      9     /// <summary>
     10     /// Modify 的摘要说明
     11     /// </summary>
     12     public class Modify : IHttpHandler
     13     {
     14         Bll.MedClientBll bll = new Bll.MedClientBll();
     15 
     16         public void ProcessRequest(HttpContext context)
     17         {
     18             context.Response.ContentType = "text/plain";
     19             string act=context.Request["act"];
     20             
     21             if (string.IsNullOrEmpty(act))
     22             {
     23                 return;
     24             }
     25             switch (act)
     26             { 
     27                 case "add":
     28                     AddNew(context);break;               
     29                     
     30                 case "check":
     31                     CheckClientCode(context);
     32                     break;
     33                 case "searchById":
     34                     SearchById(context);
     35                     break;
     36                 case "modify":
     37                     ChangeModel(context);break;
     38                 case "delete":
     39                     DeleteModel(context);
     40                     break;
     41                 case "all":
     42                
     43                     SearchByWhere(context);
     44                     break;
     45                 default: break;
     46             }
     47             
     48               
     49             
     50             
     51         }
     52 
     53         #region 判断传递的参数 private void Judge(HttpContext context, Model.MedClientModel model)
     54         private void Judge(HttpContext context, Model.MedClientModel model)
     55         {
     56             string code = context.Request["code"];
     57             string name = context.Request["name"];
     58             string birth = context.Request["birthdate"];
     59             string male = context.Request["male"];
     60             string female = context.Request["female"];
     61             string chu = context.Request["chu"];
     62             string du = context.Request["du"];
     63             string jing = context.Request["jing"];
     64             DateTime birthdate;
     65             if (string.IsNullOrEmpty(code))
     66             {
     67                 context.Response.Write("no|员工编号不能为空");
     68             }
     69             else if (string.IsNullOrEmpty(name))
     70             {
     71                 context.Response.Write("no|员工姓名不能为空");
     72             }
     73             else if (!DateTime.TryParse(birth, out birthdate))
     74             {
     75                 context.Response.Write("no|员工出生日期不能为空");
     76             }
     77             else
     78             {
     79                 model.ClientCode = code;
     80                 model.ClientName = name;
     81                 model.BirthDate = birthdate;
     82                 if (male == "true")
     83                 {
     84                     model.Sex = true;
     85                 }
     86                 else if (female == "true")
     87                 {
     88                     model.Sex = false;
     89                 }
     90                 else
     91                 {
     92                     model.Sex = null;
     93                 }
     94                 if (chu == "true")
     95                 {
     96                     model.ChuFangPermit = "Y";
     97                 }
     98                 if (du == "true")
     99                 {
    100                     model.DuMaPermit = "Y";
    101                 }
    102                 if (jing == "true")
    103                 {
    104                     model.JingMaPermit = "Y";
    105                 }
    106                 model.IsDel = false;
    107             }
    108 
    109         }
    110         #endregion
    111 
    112         #region 新增 private void AddNew(HttpContext context)
    113         private void AddNew(HttpContext context)
    114         {
    115             Model.MedClientModel model = new Model.MedClientModel();
    116             model.Id = Guid.NewGuid();
    117             Judge(context, model);
    118             if (bll.GetModel(model.ClientCode) != null)
    119             {
    120                 context.Response.Write("no|员工编号不可重复");
    121                 return;
    122             }
    123             if (bll.AddNew(model))
    124             {
    125                 context.Response.Write("yes|" + model.Id);
    126             }
    127             else
    128             {
    129                 context.Response.Write("no|新增失败");
    130             }
    131         }
    132         #endregion
    133 
    134         #region 获取分页数据 public void GetCurrentPage(HttpContext context)
    135         //public void GetCurrentPage(HttpContext context)
    136         //{
    137         //    int pageIndex;
    138         //    int pageCount;
    139         //    int sum;
    140         //    string index=context.Request["pageIndex"];
    141         //    if (!int.TryParse(index, out pageIndex))
    142         //    {
    143         //        pageIndex = 1;
    144         //    }
    145         //    List<Model.MedClientModel> pageList = (List<Model.MedClientModel>)bll.GetCurrentPage(pageIndex, 5, out pageCount, out sum);
    146         //    if (pageList.Count > 0)
    147         //    {
    148         //        JavaScriptSerializer js = new JavaScriptSerializer();
    149         //        string str = js.Serialize(pageList);
    150         //        str = "{\"pageCount\":" + pageCount + ",\"pagelist\":" + str + "}";
    151         //        context.Response.Write(str);
    152         //    }
    153         //    else
    154         //    {
    155         //        context.Response.Write("no|当前没有数据");
    156         //    }
    157 
    158         //}
    159         #endregion
    160 
    161         #region 检测员工编号是否唯一 public void CheckClientCode(HttpContext context)
    162         public void CheckClientCode(HttpContext context)
    163         { 
    164             string clientCode=context.Request["code"];
    165             if (string.IsNullOrWhiteSpace(clientCode)||clientCode==string.Empty) {
    166                 context.Response.Write("no|员工编号不能为空");
    167                 return;
    168             }
    169             Model.MedClientModel model = bll.GetModel(clientCode);
    170             if (model == null)
    171             {
    172                 context.Response.Write("yes");
    173                 return;
    174             }
    175             else
    176             {
    177                 context.Response.Write("no");
    178                 return;
    179             }
    180         }
    181         #endregion
    182 
    183         #region 查询单个实体  public void SearchById(HttpContext context)
    184         public void SearchById(HttpContext context)
    185         {
    186             Guid id;
    187             string strId=context.Request["id"];
    188             if (!Guid.TryParse(strId, out id))
    189             {
    190                 context.Response.Write("no");
    191                 return;
    192             }
    193             Model.MedClientModel model = bll.GetModel(id);
    194             if (model == null) 
    195             {
    196                 context.Response.Write("no");
    197                 return;
    198             }
    199             JavaScriptSerializer js = new JavaScriptSerializer();
    200             string str = js.Serialize(model);
    201             context.Response.Write(str);
    202         }
    203         #endregion
    204 
    205         #region 修改 public void ChangeModel(HttpContext context)
    206         public void ChangeModel(HttpContext context)
    207         {
    208             Model.MedClientModel model = new Model.MedClientModel();
    209             Guid id;
    210             string strId = context.Request["id"];
    211             if (!Guid.TryParse(strId, out id))
    212             {
    213                 context.Response.Write("no");
    214                 return;
    215             }
    216             model.Id = id;
    217             Judge(context, model);
    218            
    219             if (bll.UpdateModel(model))
    220             {
    221                 context.Response.Write("yes");
    222             }
    223             else
    224             {
    225                 context.Response.Write("no");
    226             }
    227         }
    228         #endregion
    229 
    230         #region 删除 public void DeleteModel(HttpContext context)
    231         public void DeleteModel(HttpContext context)
    232         {
    233             Guid id;
    234             string strId = context.Request["id"];
    235             if (!Guid.TryParse(strId, out id))
    236             {
    237                 context.Response.Write("no");
    238                 return;
    239             }
    240             if (bll.DeleteModel(id))
    241             {
    242                 context.Response.Write("yes");
    243 
    244             }
    245             else
    246             {
    247                 context.Response.Write("no");
    248             }
    249         }
    250         #endregion
    251 
    252         #region 按条件查询
    253         public void SearchByWhere(HttpContext context)
    254         {
    255             string code = context.Request["code"];
    256             string name = context.Request["name"];
    257             bool? sex=null;
    258             string strSex=context.Request["sex"];
    259             if (strSex == "true")
    260             {
    261                 sex = true;
    262             }
    263             else if (strSex == "false")
    264             {
    265                 sex = false;
    266             }
    267             
    268 
    269            
    270             int pageIndex;
    271             int pageCount;
    272             int sum;
    273             string index = context.Request["pageIndex"];
    274             if (!int.TryParse(index, out pageIndex))
    275             {
    276                 pageIndex = 1;
    277             }
    278             List<Model.MedClientModel> list = (List<Model.MedClientModel>)bll.GetModelListByWhere(pageIndex, 5, out pageCount, out sum, name, sex, code);
    279             if (list.Count <= 0)
    280             {
    281                 context.Response.Write("{\"sum\":0}");
    282             }
    283             else
    284             {
    285                 JavaScriptSerializer js = new JavaScriptSerializer();
    286                 string str = js.Serialize(list);
    287                 str = "{\"sum\":"+sum+",\"pageCount\":" + pageCount + ",\"pagelist\":" + str + "}";
    288                 context.Response.Write(str);
    289             }
    290         }
    291         #endregion
    292         public bool IsReusable
    293         {
    294             get
    295             {
    296                 return false;
    297             }
    298         }
    299     }
    300 }

        既然已经引用的JQuery,别用JS手写Ajax了。但是,本人某次调用JQuery提供的Ajax莫名其妙的报错,最后还是手写Ajax才解决的问题。这个代码还是保存一下吧。

    JS版Ajax
     1 function createXMLHttpRequest() {
     2     var xhr = false;
     3     try {
     4         xhr = new ActiveXObject("Msxml2.XMLHTTP");
     5     } catch (e) {
     6         try {xhr = new ActiveXObject("Microsoft.XMLHTTP");
     7             
     8         } catch (e2) {
     9         xhr = false;
    10         }
    11 }
    12 if (!xhr && typeof XMLHttpRequest != 'undefined') {
    13     xhr = new XMLHttpRequest();
    14 }
    15 return xhr;
    16 }
    //检查用户输入
    function checkInput(code, name, birthdate) {
        var sp = gel('msg');
        var result = false;
        if (code == '') {
            sp.innerHTML = '员工编号不能为空';
        } else if (name== '') {
            sp.innerHTML = '员工姓名不能为空';
        } else if (birthdate == '') {
            sp.innerHTML = '员工出生日期不能为空';
        } else {
            result = true;
        }
        return result;
    }
    //根据id获取对象
    function gel(id) {
        return document.getElementById(id);
    }
    //生成页码条
    function pageBar(pageIndex,pageBarSize,pageCount,sum,pageDiv,act) {
        this.pageIndex = pageIndex;
        this.pageBarSize = pageBarSize;
        this.pageCount = pageCount;
        this.pageDiv = pageDiv;
        this.sum = sum;
        this.createPageBar = function () {
            this.pageDiv.innerHTML = '';
            var pageStart = this.pageIndex - Math.ceil(this.pageBarSize / 2);
            if (pageStart <= 1) {
                pageStart = 1;
            }
            var pageEnd = pageStart + this.pageBarSize;
            if (pageEnd > pageCount) {
                pageEnd = pageCount;
            }
            if (this.pageIndex == 1) {
                var spFirst = document.createElement('span');
                spFirst.innerHTML = '首页';
                var spLast = document.createElement('span');
                spLast.innerHTML = '上一页';
                this.pageDiv.appendChild(spFirst)
                this.pageDiv.appendChild(spLast);
    
            } else {
                var aFirst = document.createElement('a');
                aFirst.innerHTML = '首页';
                aFirst.href = 'javascript:createPage(1)';
                var aLast = document.createElement('a');
                aLast.innerHTML = '上一页';
                aLast.href = 'javascript:createPage(' + (parseInt(this.pageIndex) - 1) + ')';
                this.pageDiv.appendChild(aFirst);
                this.pageDiv.appendChild(aLast);
            }
            for (var i = pageStart; i <= pageEnd; i++) {
                var bar = 0;
                if (i == this.pageIndex) {
                    bar = document.createElement('span');
                    bar.innerHTML = i;
                } else {
                    bar = document.createElement('a');
                    bar.innerHTML = i;
                    bar.href = 'javascript:createPage(' + i + ')';
                }
                this.pageDiv.appendChild(bar);
            }
            if (this.pageIndex >= pageCount) {
                var spNext = document.createElement('span');
                spNext.innerHTML = '下一页';
                var spEnd = document.createElement('span');
                spEnd.innerHTML = '末页';
                this.pageDiv.appendChild(spNext);
                this.pageDiv.appendChild(spEnd);
            } else {
                var aNext = document.createElement('a');
                aNext.innerHTML = '下一页';
                aNext.href = 'javascript:createPage(' + (parseInt(this.pageIndex) + 1) + ')';
                var aEnd = document.createElement('a');
                aEnd.innerHTML = '末页';
                aEnd.href = 'javascript:createPage(' + this.pageCount + ')';
    
                this.pageDiv.appendChild(aNext)
                this.pageDiv.appendChild(aEnd);
            }
            var labelFirst = document.createElement('label');
            labelFirst.innerHTML = this.pageIndex + '/' + this.pageCount;
            this.pageDiv.appendChild(labelFirst);
            var labelSecond = document.createElement('label');
            labelSecond.innerHTML = '共' + sum + '条';
            this.pageDiv.appendChild(labelSecond);
        }
    }
    //转成日期
    function changeDateFormat(cellval) {
        var date = new Date(parseInt(cellval.replace("/Date(", "").replace(")/", ""), 10));
        var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
        var currentDate = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
        return date.getFullYear() + "-" + month + "-" + currentDate;
    }
    JScriptHelper.js
     1 function createXMLHttpRequest() {
     2     var xhr = false;
     3     try {
     4         xhr = new ActiveXObject("Msxml2.XMLHTTP");
     5     } catch (e) {
     6         try {xhr = new ActiveXObject("Microsoft.XMLHTTP");
     7             
     8         } catch (e2) {
     9         xhr = false;
    10         }
    11 }
    12 if (!xhr && typeof XMLHttpRequest != 'undefined') {
    13     xhr = new XMLHttpRequest();
    14 }
    15 return xhr;
    16 }
    JScriptMedClient代码
      1 var tbList = false;
      2 var pageIndex = false;
      3 var pageCount = false;
      4 var sum = false;
      5 var res = false;
      6 var condition = new Array();
      7 $(function () {
      8     $('#datepicker').datepicker();
      9     $('#txtCode').blur(checkClientCode);
     10     
     11     tbList = $('#tbList');
     12     pageIndex = 1;
     13     createPage(pageIndex);
     14 });
     15 //查出所有数据
     16 var searchAll = function () {
     17     $('#allshow').css('display', 'none');
     18     condition = ['', '', ''];
     19     createPage(1);
     20 }
     21 //添加和修改
     22 var showDialog = function (biaoti, act, id) {
     23     if (act == "modify") {
     24         fuzhi(id);
     25     }
     26     $("#dialog-confirm").dialog({
     27         resizable: false,
     28         title: biaoti,
     29          400,
     30         height: 380,
     31         modal: true,
     32         close: function () {
     33             clearData();
     34         },
     35         buttons: {
     36             '取消': function () {
     37                 $(this).dialog('close');
     38                 clearData();
     39             },
     40             '确定': function () {
     41 
     42                 modify(act, id);
     43 
     44 
     45             }
     46 
     47         }
     48     });
     49 }
     50 //清空弹出窗口的内容
     51 var clearData = function () {
     52     $('#txtCode').val('');
     53     $('#txtName').val('');
     54     $('#dui').css('display', 'none');
     55     $('#cuo').css('display', 'none');
     56     $('#datepicker').val('');
     57     $('#female').attr('checked', false);
     58     $('#male').attr('checked', false);
     59     $('#chu').attr('checked', false);
     60     $('#du').attr('checked', false);
     61     $('#jing').attr('checked', false);
     62 }
     63 
     64 //操作
     65 var modify = function (act, id) {
     66     var code = $('#txtCode');
     67     var name = $('#txtName');
     68     var birthdate = $('#datepicker');
     69     var chu = $('#chu');
     70     var du = $('#du');
     71     var jing = $('#jing');
     72     var male = $('#male');
     73     var female = $('#female');
     74     if (!checkInput(code.val(), name.val(), birthdate.val())) {
     75         return;
     76     }
     77     var send = false;
     78     if (id == '0') {
     79         send = { "act": act, "code": code.val(), "name": name.val(), "birthdate": birthdate.val(), "male": male.attr("checked"), "female": female.attr("checked"), "chu": chu.attr("checked"), "du": du.attr("checked"), "jing": jing.attr("checked") };
     80     } else {
     81         send = { "act": act, "id": id, "code": code.val(), "name": name.val(), "birthdate": birthdate.val(), "male": male.attr("checked"), "female": female.attr("checked"), "chu": chu.attr("checked"), "du": du.attr("checked"), "jing": jing.attr("checked") };
     82     }
     83 
     84     $.post('/Handler/Modify.ashx', send,
     85             function (data) {
     86                 var temp = data.split('|');
     87                 if (temp[0] == 'yes') {
     88 
     89                     $('#dialog-confirm').dialog('close');
     90                     clearData();
     91                     if (act == 'add') {
     92                         condition = ['', '', ''];
     93                         if (sum % 5 != 0) {
     94                             createPage(pageCount, 'all');
     95                         } else {
     96                             createPage(pageCount+1, 'all');
     97                         }
     98                     } else {
     99                         createPage(pageIndex, 'all')
    100                     }
    101 
    102                 }
    103 
    104             }
    105             );
    106 }
    107 
    108 //展示数据
    109 var createPage = function (index) {
    110     pageIndex = index;
    111     $('#tbList tr:gt(0)').remove();
    112 
    113     $.post('/Handler/Modify.ashx', { "pageIndex": index, "act": 'all', "code": condition[0], "name": condition[1], "sex": condition[2] }, function (data) {
    114         var json = eval('(' + data + ')');
    115 
    116         sum = json.sum;
    117         if (sum > 0) {
    118             createTable(json);
    119             $('#tbList').css('display', 'block');
    120             showPageBar(pageIndex, pageCount, sum);
    121         }
    122 
    123         else {
    124             showPageBar(1, 1, sum);
    125 
    126             $('#tbList').css('display', 'none');
    127             window.setTimeout(' alert("对不起,没有您需要的数据!");', 100);
    128 
    129         }
    130     });
    131 }
    132 //创建表格
    133 var createTable = function (json) {
    134     pageCount = json.pageCount;
    135     var dataReturn = json.pagelist;
    136     for (var i = 0; i < dataReturn.length; i++) {
    137         var tr = gel('tbList').insertRow(-1);
    138         tr.setAttribute("id", dataReturn[i].Id);
    139         var td1 = tr.insertCell(-1);
    140         td1.innerHTML = dataReturn[i].ClientCode;
    141         var td2 = tr.insertCell(-1);
    142         td2.innerHTML = dataReturn[i].ClientName;
    143         var sex = '男';
    144         if (dataReturn[i].Sex == false) {
    145             sex = '女';
    146         } else if (dataReturn[i].Sex == null) {
    147             sex = '未知';
    148         }
    149         var td3 = tr.insertCell(-1);
    150         td3.innerHTML = sex;
    151         var td4 = tr.insertCell(-1);
    152         td4.innerHTML = changeDateFormat(dataReturn[i].BirthDate);
    153         var td5 = tr.insertCell(-1);
    154         var chufang = dataReturn[i].ChuFangPermit == 'Y' ? '有' : '无';
    155         td5.innerHTML = chufang;
    156         var td6 = tr.insertCell(-1);
    157         var duma = dataReturn[i].DuMaPermit == 'Y' ? '有' : '无';
    158         td6.innerHTML = duma;
    159         var td7 = tr.insertCell(-1);
    160         var jingma = dataReturn[i].JingMaPermit == 'Y' ? '有' : '无';
    161         td7.innerHTML = jingma;
    162         var td8 = tr.insertCell(-1);
    163         var title = '修改';
    164         var act = 'modify';
    165         td8.innerHTML = '<a href="javascript:showDialog(\'' + title + '\',\'' + act + '\'' + ',\'' + dataReturn[i].Id + '\')" >修改</a>|' + '<a href="javascript:deleteModel(\'' + dataReturn[i].Id + '\')">删除</a>';
    166 
    167     }
    168 
    169 }
    170 //创建页码条
    171 var showPageBar = function (pageIndex, pageCount,sum) {
    172     var page = new pageBar(pageIndex, 5, pageCount,sum, gel('page'));
    173     page.createPageBar();
    174 }
    175 //检测员工编号
    176 var checkClientCode = function () {
    177 
    178     var code = $('#txtCode');
    179     if (code.val() != '') {
    180         $.post('/Handler/Modify.ashx', { "code": code.val(), "act": 'check' }, function (data) {
    181             if (data == 'yes') {
    182                 $('#dui').css('display', 'inline');
    183                 $('#cuo').css('display', 'none');
    184                 res = true;
    185             } else if (data == 'no') {
    186                 $('#dui').css('display', 'none');
    187                 $('#cuo').css('display', 'inline');
    188             } else {
    189                 var temp = data.split('|');
    190                 alert(temp[1]);
    191             }
    192 
    193         });
    194     }
    195 
    196 }
    197 //赋值
    198 function fuzhi(id) {
    199     $.post('/Handler/Modify.ashx', { "id": id, "act": 'searchById' }, function (data) {
    200         if (data == 'no') {
    201             alert('数据错误');
    202         } else {
    203             var temp = $.parseJSON(data);
    204             $('#txtCode').val(temp.ClientCode);
    205             $('#txtName').val(temp.ClientName);
    206             $('#datepicker').val(changeDateFormat(temp.BirthDate));
    207             if (temp.Sex == false) {
    208                 $('#female').attr('checked', true);
    209             } else if (temp.Sex == true) {
    210                 $('#male').attr('checked', true);
    211             }
    212             temp.ChuFangPermit == 'Y' ? $('#chu').attr('checked', true) : $('#chu').attr('checked', false);
    213             temp.DuMaPermit == 'Y' ? $('#du').attr('checked', true) : $('#du').attr('checked', false);
    214             temp.JingMaPermit == 'Y' ? $('#jing').attr('checked', true) : $('#jing').attr('checked', false);
    215 
    216         }
    217     });
    218 }
    219 //删除
    220 var deleteModel = function (id) {
    221     if (confirm('确定删除吗?')) {
    222         $.post('/Handler/Modify.ashx', { "id": id, "act": 'delete' }, function (data) {
    223             if (data == 'yes') {
    224                 createPage(pageIndex);
    225             } else {
    226                 alert('删除失败');
    227             }
    228         });
    229     }
    230 }
    231 //查询对话框
    232 var search = function () {
    233     $("#search").dialog({
    234         resizable: false,
    235         title: '查询',
    236          400,
    237         height: 280,
    238         modal: true,
    239         close: function () {
    240             clearCondition();
    241         },
    242         buttons: {
    243             '取消': function () {
    244                 $(this).dialog('close');
    245                 clearCondition();
    246             },
    247             '确定': function () {
    248 
    249                 searchByWhere();
    250                 clearCondition();
    251 
    252 
    253             }
    254 
    255         }
    256     });
    257 }
    258 //清空查询条件
    259 var clearCondition = function () {
    260     $('#searchCode').val('');
    261     $('#searchName').val('');
    262     $('#searchMale').attr('checked', false);
    263     $('#searchFemale').attr('checked',false);
    264 }
    265 //查询
    266 var searchByWhere = function () {
    267     $('#allshow').css('display','inline');
    268     var searchIndex = 1;
    269     var code = $('#searchCode').val();
    270     var name = $('#searchName').val();
    271     var sex = 0;
    272     if ($('#searchMale').attr('checked') == true) {
    273         sex = true;
    274     } else if ($('#searchFemale').attr('checked') == true) {
    275         sex = false;
    276     }
    277     else if (code == '' && name == '') {
    278         alert('请输入查询条件');
    279         return;
    280     }
    281 
    282     condition = [code, name, sex];
    283     createPage(searchIndex);
    284     $('#search').dialog('close');
    285 
    286 }

      本人作为一只小菜鸟,也只有这点水平,如果这篇随笔有幸被其他人看到,还望批评指正。 

  • 相关阅读:
    不知道下一步该怎么走
    我这里下雪了
    第一次用到锁,解决多线程访问的问题
    这2年
    《软件需求》阅读笔记06和jupyterLab学习第二天
    《软件需求》阅读笔记05和jupyterLab学习第一天
    《软件需求》阅读笔记04和anaconda的安装和配置
    《软件需求》阅读笔记03和mapreduce数据清洗
    day10 echart图表联动+周总结+《软件需求》阅读笔记02
    day9 完成统计图表和《软件需求》阅读笔记01
  • 原文地址:https://www.cnblogs.com/wcfl/p/2826327.html
Copyright © 2011-2022 走看看