csharp:Dapper Sample

2023-11-05

You can find Dapper on Google Code here: http://code.google.com/p/dapper-dot-net/ and the GitHub distro here: https://github.com/SamSaffron/dapper-dot-net.

 

///<summary>
        /// 追加记录
        ///</summary>
        ///<param name="BookPlaceListInfo"></param>
        ///<returns></returns>
        public int InsertBookPlaceList(BookPlaceListInfo bookPlaceList)
        {
            int ret = 0;
            try
            {
                List<BookPlaceListInfo> list=new List<BookPlaceListInfo>();
                list.Add(bookPlaceList);
                StringBuilder str = new StringBuilder();
                str.Append("INSERT INTO BookPlaceList ");
                str.Append("([BookPlaceName] ,[BookPlaceCode] ,[BookPlaceParent]) VALUES ");
                str.Append("(@BookPlaceName ,@BookPlaceCode,@BookPlaceParent)");
                ret=SqlMapperUtil.InsertMultiple<BookPlaceListInfo>(str.ToString(),list, SqlHelper.ConnectionString);
 
            }
            catch (SqlException ex)
            {
                throw ex;
            }
            return ret;
        }
        /// <summary>
        /// 存储过程
        /// 追加记录
        /// </summary>
        /// <param name="bookPlaceList"></param>
        /// <returns></returns>
        public int InsertBookPlaceListProc(BookPlaceListInfo bookPlaceList)
        {
            int ret = 0;
            try
            {
                string strProc = "proc_Insert_BookPlaceList";//存储过程
                var pamar = new { BookPlaceName = bookPlaceList.BookPlaceName, BookPlaceCode = bookPlaceList.BookPlaceCode, BookPlaceParent = bookPlaceList.BookPlaceParent };
                ret = SqlMapperUtil.InsertUpdateOrDeleteStoredProc(strProc, pamar, SqlHelper.ConnectionString);
 
            }
            catch (SqlException ex)
            {
                throw ex;
            }
            return ret;
        }
 
        /// <summary>
        /// 追加多条记录
        /// </summary>
        /// <param name="bookPlaceList"></param>
        /// <returns></returns>
        public int InsertBookPlaceListMore(List<BookPlaceListInfo> bookPlaceList)
        {
            int ret = 0;
            try
            {
    
                StringBuilder str = new StringBuilder();
                str.Append("INSERT INTO BookPlaceList ");
                str.Append("([BookPlaceName] ,[BookPlaceCode] ,BookPlaceParent]) VALUES ");
                str.Append("(@BookPlaceName ,@BookPlaceCode,@BookPlaceParent)");
                ret = SqlMapperUtil.InsertMultiple<BookPlaceListInfo>(str.ToString(), bookPlaceList, SqlHelper.ConnectionString);
 
            }
            catch (SqlException ex)
            {
                throw ex;
            }
            return ret;
        }
 
        ///<summary>
        ///修改记录
        ///</summary>
        ///<param name="BookPlaceListInfo"></param>
        ///<returns></returns>
        public int UpdateBookPlaceList(BookPlaceListInfo bookPlaceList)
        {
            int ret = 0;
            try
            {
                List<BookPlaceListInfo> list = new List<BookPlaceListInfo>();
                list.Add(bookPlaceList);
                StringBuilder str = new StringBuilder();
                str.Append("UPDATE BookPlaceList SET ");
                str.Append("[BookPlaceName]=@BookPlaceName ,");
                str.Append("[BookPlaceCode]=@BookPlaceCode,");
                str.Append("[BookPlaceParent]=@BookPlaceParent");
                str.Append(" where ");
                str.Append("[BookPlaceID]=@BookPlaceID");
                ret = SqlMapperUtil.InsertMultiple<BookPlaceListInfo>(str.ToString(), list, SqlHelper.ConnectionString);
 
            }
            catch (SqlException ex)
            {
                throw ex;
            }
            return ret;
        }
        /// <summary>
        /// 存储过程
        /// </summary>
        /// <param name="bookPlaceList"></param>
        /// <returns></returns>
        public int UpdateBookPlaceListProc(BookPlaceListInfo bookPlaceList)
        {
            int ret = 0;
            try
            {
                string strProc = "proc_Update_BookPlaceList";//存储过程
                var pamar = new { BookPlaceName = bookPlaceList.BookPlaceName, BookPlaceCode = bookPlaceList.BookPlaceCode, BookPlaceParent = bookPlaceList.BookPlaceParent, BookPlaceID=bookPlaceList.BookPlaceID };
                ret = SqlMapperUtil.InsertUpdateOrDeleteStoredProc(strProc, pamar, SqlHelper.ConnectionString);
            }
            catch (SqlException ex)
            {
                throw ex;
            }
            return ret;
        }
        ///<summary>
        /// 删除记录
        ///</summary>
        ///<param name="bookPlaceIDInfo"></param>
        ///<returns></returns>
        public bool DeleteBookPlaceList(int bookPlaceID)
        {
            bool ret = false;
            try
            {
                int temp = 0;
                StringBuilder str = new StringBuilder();
                str.Append("DELETE  BookPlaceList WHERE BookPlaceID = @BookPlaceID");
                temp = SqlMapperUtil.InsertUpdateOrDeleteSql(str.ToString(), new { BookPlaceID = bookPlaceID }, SqlHelper.ConnectionString);
                 
                if (temp != 0)
                {
                    ret = true;
                }
            }
            catch (SqlException ex)
            {
                throw ex;
            }
            return ret;
        }
        /// <summary>
        /// 存储过程
        /// </summary>
        /// <param name="bookPlaceID"></param>
        /// <returns></returns>
        public bool DeleteBookPlaceListProc(int bookPlaceID)
        {
            bool ret = false;
            try
            {
                int temp = 0;
                string strProc = "proc_Delete_BookPlaceList";//存储过程
                var pamar = new { BookPlaceID = bookPlaceID };
                temp = SqlMapperUtil.InsertUpdateOrDeleteStoredProc(strProc, new { BookPlaceID = bookPlaceID }, SqlHelper.ConnectionString);
 
                if (temp != 0)
                {
                    ret = true;
                }
            }
            catch (SqlException ex)
            {
                throw ex;
            }
            return ret;
        }
        ///<summary>
        /// 查询记录
        ///</summary>
        ///<param name="bookPlaceIDInfo"></param>
        ///<returns></returns>
        public BookPlaceListInfo SelectBookPlaceList(int bookPlaceID)
        {
            BookPlaceListInfo bookPlaceList = null;
            try
            {
                StringBuilder str = new StringBuilder();
                str.Append("SELECT * FROM BookPlaceList WHERE BookPlaceID = @BookPlaceID");
                bookPlaceList = SqlMapperUtil.SqlWithParamsSingle<BookPlaceListInfo>(str.ToString(), new { BookPlaceID = bookPlaceID }, SqlHelper.ConnectionString);
 
            }
            catch (SqlException ex)
            {
                throw ex;
            }
            return bookPlaceList;
        }
        /// <summary>
        /// 存储过程查询记录
        /// 涂聚文
        /// 20150726
        /// </summary>
        /// <param name="bookPlaceID"></param>
        /// <returns></returns>
        public BookPlaceListInfo SelectBookPlaceListProc(int bookPlaceID)
        {
            BookPlaceListInfo bookPlaceList = null;
            try
            {
                string strProc = "proc_Select_BookPlaceList";//存储过程
                bookPlaceList = SqlMapperUtil.StoredProcWithParamsSingle<BookPlaceListInfo>(strProc, new { BookPlaceID = bookPlaceID }, SqlHelper.ConnectionString);
 
            }
            catch (SqlException ex)
            {
                throw ex;
            }
            return bookPlaceList;
        }
        ///<summary>
        /// 查询所有记录
        ///</summary>
        ///<returns></returns>
        public List<BookPlaceListInfo> SelectBookPlaceListAll()
        {
            List<BookPlaceListInfo> list = new List<BookPlaceListInfo>();         
            try
            {
                string str = "SELECT * FROM BookPlaceList";
                list = SqlMapperUtil.SqlWithParams<BookPlaceListInfo>(str, null, SqlHelper.ConnectionString);
            }
            catch (SqlException ex)
            {
                throw ex;
            }
            return list;
        }
        /// <summary>
        /// 存储过程
        /// Geovin Du
        /// 查询所有记录
        /// </summary>
        /// <returns></returns>
        public List<BookPlaceListInfo> SelectBookPlaceListProc()
        {
            List<BookPlaceListInfo> list = new List<BookPlaceListInfo>();
            try
            {
                string strProc = "proc_Select_BookPlaceListAll"; //存储过程
                list = SqlMapperUtil.StoredProcWithParams<BookPlaceListInfo>(strProc, null, SqlHelper.ConnectionString);
            }
            catch (SqlException ex)
            {
                throw ex;
            }
            return list;
        }

测试

/// <summary>
       /// 编辑
       /// </summary>
       /// <param name="sender"></param>
       /// <param name="e"></param>
       private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
       {
           EditForm edit = new EditForm();
           edit.Text = "";
           edit.Operator = 2;
           edit.BookPlaceCode =(!object.Equals(dataGridView1.Rows[e.RowIndex].Cells["BookPlaceCode"].Value,null))?dataGridView1.Rows[e.RowIndex].Cells["BookPlaceCode"].Value.ToString():"";
           edit.BookPlaceID = int.Parse(dataGridView1.Rows[e.RowIndex].Cells["BookPlaceID"].Value.ToString());
           edit.BookPlaceParent = int.Parse(dataGridView1.Rows[e.RowIndex].Cells["BookPlaceParent"].Value.ToString());
           edit.BookPlaceName = dataGridView1.Rows[e.RowIndex].Cells["BookPlaceName"].Value.ToString();
           if (edit.ShowDialog() == DialogResult.OK)
           {
               this.dataGridView1.DataSource = bookPlaceListBLL.SelectBookPlaceListAll();
               //this.dataGridView1.DataSource = bookPlaceListBLL.SelectBookPlaceListProc(); //存储过程
           }
 
       }
       /// <summary>
       /// 添加
       /// </summary>
       /// <param name="sender"></param>
       /// <param name="e"></param>
       private void button1_Click(object sender, EventArgs e)
       {
           EditForm edit = new EditForm();
           edit.Text = "";
           edit.Operator = 1;
           edit.BookPlaceParent = int.Parse(dataGridView1.CurrentRow.Cells["BookPlaceParent"].Value.ToString());
           if (edit.ShowDialog() == DialogResult.OK)
           {
               this.dataGridView1.DataSource = bookPlaceListBLL.SelectBookPlaceListAll();
               //this.dataGridView1.DataSource = bookPlaceListBLL.SelectBookPlaceListProc(); //存储过程
           }
       }
       /// <summary>
       /// 删除
       /// </summary>
       /// <param name="sender"></param>
       /// <param name="e"></param>
       private void button2_Click(object sender, EventArgs e)
       {
           int id = int.Parse(dataGridView1.CurrentRow.Cells["BookPlaceID"].Value.ToString());
           //bool k = bookPlaceListBLL.DeleteBookPlaceList(id);//SQL
           bool k = bookPlaceListBLL.DeleteBookPlaceListProc(id);//存储过程
           if (k)
           {
               this.dataGridView1.DataSource = bookPlaceListBLL.SelectBookPlaceListAll();
               MessageBox.Show("ok");
 
           }
 
       }
       /// <summary>
       /// 查询
       /// </summary>
       /// <param name="sender"></param>
       /// <param name="e"></param>
       private void button3_Click(object sender, EventArgs e)
       {
           int id = int.Parse(dataGridView1.CurrentRow.Cells["BookPlaceID"].Value.ToString());
           BookPlaceListInfo info = new BookPlaceListInfo();
           //info = bookPlaceListBLL.SelectBookPlaceList(id);//SQL
           info = bookPlaceListBLL.SelectBookPlaceListProc(id);//存储过程 涂聚文注
           if (!object.Equals(info, null))
           {
               MessageBox.Show(info.BookPlaceName);
           }
       }
 
/// <summary>
       /// 添加,编辑
       /// </summary>
       /// <param name="sender"></param>
       /// <param name="e"></param>
       private void button1_Click(object sender, EventArgs e)
       {
           BookPlaceListInfo info = new BookPlaceListInfo();
 
           info.BookPlaceCode = this.textBox2.Text.Trim();
           info.BookPlaceName = this.textBox1.Text.Trim();
           info.BookPlaceParent = int.Parse(this.textBox3.Text.Trim());
           int k = 0;
           if (Operator == 1)
           {
               //k = bookPlaceListBLL.InsertBookPlaceList(info);//SQL
               k = bookPlaceListBLL.InsertBookPlaceListProc(info);//添加,存储过程
               if (k > 0)
               {
                   DialogResult dresult = MessageBox.Show("添加記錄成功!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                   if (dresult == DialogResult.OK)
                   {
                       this.Close();
                       this.DialogResult = DialogResult.OK;
                   }
 
               }
           }
           if (Operator == 2)
           {
               info.BookPlaceID = BookPlaceID;
               //k = bookPlaceListBLL.UpdateBookPlaceList(info);//SQL
               k = bookPlaceListBLL.UpdateBookPlaceListProc(info);//编辑存储过程
               if (k > 0)
               {
                   //
                   DialogResult dresult = MessageBox.Show("修改記錄成功!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                   if (dresult == DialogResult.OK)
                   {
                       this.Close();
                       this.DialogResult = DialogResult.OK;
                   }
 
               }
           }
       }




与SqlHelper比批量数据插入快近一半

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

csharp:Dapper Sample 的相关文章

  • 基于xsd模式生成xml(使用.NET)

    我想根据我的 xsd 架构 cap xsd 生成 xml 文件 我找到了这篇文章并按照说明进行操作 使用 XSD 文件生成 XML 文件 https stackoverflow com questions 6530424 generatin
  • .NET 字符串.替换

    我很生气 通常 我喜欢像 C 中那样进行替换 但是是否有一种 C 风格的替换 它一次仅替换一个字母或我指定的 X 数量 不 BCL 中不存在仅替换字符的单个实例的 Replace 方法 两个主要的 Replace 方法将替换所有出现的情况
  • 将日期时间转换为时间

    我有一个对象 2 17 2011 6 46 01 PM 我想将此对象转换为 6 46 PM string myDateString 2 17 2011 6 46 01 PM DateTime datetime DateTime Parse
  • smtpclient“发送邮件失败”

    这是我的代码 for int i 0 i lt number i MailAddress to new MailAddress iMail to MailAddress from new MailAddress iMail from iMa
  • .NET Core 3 [JsonIgnore] 请求单个资源时不起作用

    在我的 net Core 3 0 API 中 JsonIgnore 属性无法正常工作 我在用着System Text Json 而不是旧的Newtonsoft Json 当我使用返回对象列表的资源时 例如 api Object 对象的序列化
  • 我是唯一一个收到“当前目标框架中不可用的程序集”的人吗?

    在添加测试项目后 我在使用 Visual Studio 2010 和任何报告此错误的框架版本时遇到了一个持续存在的问题 当前目标框架中不提供程序集 到目前为止 我只在两个程序集上发生过这种情况 并且始终一致 系统服务流程 系统 配置 安装
  • 在 .NET 并发线程之间传递数据的最佳方式是什么?

    我有两个线程 一个需要轮询一堆单独的静态资源以查找更新 另一种需要获取数据并将其存储在数据库中 线程1如何告诉线程2有东西要处理 如果数据块是独立的 则将数据块视为要由线程池处理的工作项 使用线程池和QueueUserWorkItem将数据
  • 在哪里可以下载没有 Visual Studio 2010 的 C# 4.0 编译器?

    我知道 CTP VS 2010 映像 但我可以只下载 NET Framework 4 0 和 C 编译器吗 AFAIK VS 2010 CTP 仅作为 VM 映像提供 我不相信 Microsoft 发布了 VS 的安装程序 其中一个绝对不适
  • 调试VS 2005提示“操作不支持”

    我一直在调试 VS 2005 并将 启动外部程序 设置为 C Program Files Microsoft Visual Studio 10 0 Common7 IDE devenv exe 但按 F5 后出现此错误 尝试运行项目时出错
  • .NET 中非常奇怪的 SSL 错误:仅针对特定 URL 无法解密指定数据

    我正在使用 NET 从 URL 下载数据 对于大多数 URL 它都没有问题 但对于一个特定的 URL 当我尝试建立连接时 我收到一个非常奇怪的错误 此外 该错误仅在第二次 及后续 尝试发出请求时发生 第一次似乎总是有效 这是一些演示该问题的
  • 根据日期和时间计算下一次运行任务的时间

    我有一个相当具体的问题 根据该任务的配置 找出计算程序中的 任务 下次运行时间的最佳方法 从配置此 任务 的一些事物的定义开始 首先 一个看起来很像框架的枚举DayOfWeek枚举 我称之为DaysOfWeek并将其标记为FlagsAttr
  • 在实体框架 6 中使用 SqlQuery>

    我正在尝试在 EF 6 中执行 SQL 查询 select查询返回两个字符串列 例如select a b 并且可以有任意数量的行 我想将结果映射到字典 但我无法摆脱以下错误 错误 1 无法将类型 System Data Entity Inf
  • 未将对象引用设置为对象的实例 - 如何在异常中查找有问题的对象名称?

    这是我编程存在的祸根 部署应用程序后 当出现此错误时 没有多少调试转储可以告诉您哪些对象未实例化 我有调用堆栈 这很棒 它大致告诉我对象在哪里 但是有没有办法让 NET 告诉我对象的实际名称 如果你在调试时发现它们 程序当然会在有问题的生物
  • COM多线程支持

    第一次使用COM我有这个 COM dll 比如 ABCServer dll 我创建了一个 RCW 并在我的项目中添加了对它的引用 现在 我的应用程序创建了多个线程 每个线程从 COM dll 创建某些类并使用它们 但是 当其他线程正在处理
  • ODP.Net - OracleDataReader.读取速度非常慢

    我在 ODP Net 中的 OracleDataReader 方面遇到很多麻烦 基本上 我有一个参数化查询 需要 1 5 秒的时间来运行 返回大约 450 条记录 然后需要 60 90 秒的时间来循环 甚至没有代码在循环中运行 实际上是迭代
  • .NET 中应用程序域的常见用途和最佳实践?

    关于何时在应用程序中创建新的应用程序域 有哪些准则和最佳实践 另外 有哪些常见用途以及如何在应用程序中使用多个应用程序域的示例 我见过的最常见的场景是能够通过与主程序不同的安全模型提供可扩展性 在单独的 AppDomain 中加载插件可以实
  • .NET 可移植类库中的 .ToShortDateString 发生了什么

    我想知道为什么没有 ToShortDateString在 NET 可移植类库中 我有 2 个项目 Silverlight 和常规 NET 类库 使用相同的代码 并且代码涉及调用 ToShortDateString on a DateTime
  • __FUNCTION__ 宏的 C# 版本

    有人对 C FUNCTION 宏的 C 版本有好的解决方案吗 编译器似乎不喜欢它 尝试使用这个代替 System Reflection MethodBase GetCurrentMethod Name C 没有 LINE or FUNCTI
  • 我的 C# .NET 团队是否应该迁移到 Windows Presentation Foundation? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 为什么我不能在扩展 List 的类中调用 OrderBy?

    我有一堂课 Deck 其中包含一个名为的方法Shuffle 我正在致力于重构Deck延长List

随机推荐

  • VCSEL激光二极管驱动

    1 VCSEL的P I特性 激光二极管的出射光功率P与注入电流I的关系曲线称为P I曲线 注入电流小于阈值电流Ith时 激光器的输出功率P很小 为自发辐射的荧光 荧光的输出功率随注入电流的增加而缓慢增加 注入电流大于Ith时 输出功率P随注
  • 计算字符串长度函数大全

    字符串的长度通常是指字符串中包含字符的数目 但有的时候人们需要的是 字符串所占字节的数目 常见的获取字符串长度的方法包括如下几种 1 使用sizeof获取字符串长度 sizeof的含义很明确 它用以获取 字符数组的字节数 当然包括结束符 0
  • 攻防世界之disabled_button(web简单)

    老师今天上课讲了前端知识 然后给了大家一个不能按的按钮 小宁惊奇地发现这个按钮按不下去 到底怎么才能按下去呢 打开可以看到一个按钮 但是无法点击 按f12 打开代码 这里是可以互动的 找到按钮位置 删除属性 disabled 按下回车 确认
  • SQL Server附加数据库错误5123,另一个进程正在调用

    情况一 在使用sql server附加数据库时 出现了 首先 我想讲一个故事 我想拿自己的银行卡 取出父亲银埋在家中30米地下的钱 这两个对象的位置是同一个吗 显然不是 出现此报错的原因是 我在自己的机器上登录远程服务器数据库 然后检索远程
  • redis 三. hash应用场景及底层分析

    Hash 类型 一 简单命令示例 二 java 操作示例 三 使用场景 四 底层分析 ziplist 压缩列表 ziplist内部entry详解 ziplist内存分配与连锁更新 ziplist 小总结 hashtable 字典 一 简单命
  • vue面试题:说说vue操作真实dom性能瓶颈

    vue面试题 说说vue操作真实dom性能瓶颈 下面一起来看看吧 vue性能瓶颈的几种情况 一次渲染大量的数据的时候 存在大量数据并且都是复杂类型的时候 会导致vue对数据的劫持时间和渲染时间变长 js 连续执行时间过长 会导致页面长时间无
  • nodejs之Buffer(缓冲区)

    参考 http www runoob com nodejs nodejs buffer html JavaScript 语言自身只有字符串数据类型 没有二进制数据类型 但在处理像TCP流或文件流时 必须使用到二进制数据 因此在 Node j
  • 这是一篇用来刷题群测试博客

    这是一篇用来刷题群测试博客 这是一篇用来刷题群测试博客
  • 研究ELF文件的工具objdump&readelf

    NAME objdump display information from object files SYNOPSIS objdump a archive headers b bfdname target bfdname C demangl
  • warning: #223-D: function “strlen“ declared implicitly

    问题描述 在使用Keil5编译C文件时报错 warning 223 D function strlen declared implicitly 问题解决 在主函数中加入 extern size t strlen const char
  • continue与break --- 循环控制的两大巨头

    目录 前言 break continue 总结 前言 continue与break都是用于循环语句的 帮助我们更好的控制循环流程 我们以while循环为例 来深度解析continue与break语句 这是while语句的基本结构 结合con
  • FastDFS安全注意事项

    FastDFS安全注意事项 本篇文章转载于 FastDFS 作者 余庆 大佬的 FastDFS分享与交流 公众号 对于互联网应用 FastDFS 的标准使用姿势 通过 FastDFS API 进行文件上传等更新操作 storage serv
  • Jmeter(二十八) - 从入门到精通 - Jmeter Http协议录制脚本工具-Badboy1(详解教程)

    1 简介 在使用jmeter自动录制脚本时会产生很多无用的请求 所以推荐使用badboy录制脚本之后保存为jmx文件 在jmeter中打开使用 因此宏哥在这里介绍一下Badboy这款工具 本来打算不做介绍了 原因是因为这款工具已经不在维护和
  • python-selenium-弹窗的处理

    切换到弹窗视角 alert driver switch to alert 点击弹窗中的确认 alert accept 点击弹窗中的取消 alert dismiss 获取弹出框的信息内容 alert text 当遇到弹窗时 1 切换到弹窗视角
  • Android Socket详细使用攻略

    前言 Socket的使用在 Android网络编程中非常重要 今天我将带大家全面了解 Socket 及 其使用方法 目录 1 网络基础 1 1 计算机网络分层 计算机网络分为五层 物理层 数据链路层 网络层 运输层 应用层 其中 网络层 负
  • C语言第一次作业练习

    以下程序教材基于 谭浩强C程序设计 第四版 第1题 参照例1 3 在Visual C 6 0环境中继续完成教材P 15 习题6 此程序于2017年3月1日12 48编写 目的 当用户在命令窗口输入a b c三个值 输出 其中最大者 incl
  • windows10下配置android-studio-ide

    前言 android studio ide配置对于新手来说可能有一点点麻烦 这里详细记录一下 希望对新手有所帮助 大佬请忽略哈 下载 android studio ide官网下载地址 谷歌官网的这个地址目前对天朝开放 android stu
  • C#判断字符串中有没有字母,正则表达式、IsLetter

    要判断字符串中是否包含字母 可以使用正则表达式或者循环遍历字符串的方式 方法一 使用正则表达式 using System Text RegularExpressions string input Hello123 bool contains
  • 单例模式、工厂模式,观察者模式

    单例模式 Singleton 限制了类的实例化次数只能一次 从经典意义来将 单例模式 在实例不存在的时候 可以通过一个方法创建一个类来实现创建类的新实例 如果实例已经存在 他会简单返回该对象的引用 单例模式不同于静态类 可以推迟它们的初始化
  • csharp:Dapper Sample

    You can find Dapper on Google Code here http code google com p dapper dot net and the GitHub distro here https github co