c#从基础学起string.Join(",", keys.ToArray())
总感觉自己工作6年了,经验丰富。直到近期报了一个.net进阶班才知道。我还差得很远。就拿string.join对比
我的代码:
public static int InsertModel<T>(T t) where T : BaseModel
{
Type type = typeof(T);
string columnStrings = string.Join(",", type.GetProperties().Select(p => string.Format("[{0}]", p.Name)));
string sql = "insert into "+type.Name+"(";
foreach (var item in type.GetProperties())
{
if (item.Name != "Id")
{
sql+=item.Name+",";
}
}
sql = sql.Substring(, sql.Length - );
sql += ")";
sql+=" values(";
foreach (var item in type.GetProperties())
{
if (item.Name != "Id")
{
sql += "'" + item.GetValue(t) + "',";
}
}
sql = sql.Substring(, sql.Length - );
sql += ")";
return DbHelperSQL.ExecuteSql(sql); }
会发现在insert的时候我拼接的比较辛苦,后来和我们班的优秀作业对比了一下。下面是他的代码:
public bool Insert<T>(T t) where T : BaseModel
{
//插入实体时要判断一下时间的插入.还可以通过特性来判断一下数据的长度
//约定的id为自增长.
var type = typeof(T);
var keys = new List<string>();
var values = new List<string>();
var par = new List<SqlParameter>();
foreach (var item in type.GetProperties())
{
var value = item.GetValue(t);
if (item.Name.ToLower() == "id") continue;
keys.Add(item.Name);
values.Add("@" + item.Name);
par.Add(new SqlParameter("@" + item.Name, value));
}
var c = string.Join(",", keys.ToArray());
var v = string.Join(",", values.ToArray());
var sql = string.Format($"INSERT INTO [{type.Name}] ({c}) " +
$"VALUES({v})"); return ExcuteSql<bool>(sql, cmd =>
{
foreach (var parameter in par)
cmd.Parameters.Add(parameter); var result = cmd.ExecuteNonQuery();
return result > ;
}); // return RunCmd(sql, par.ToArray());
}
发现他很巧妙的用了string.join。与我的相比省去了好多代码
以后当自勉,代码更上一层!!!
c#从基础学起string.Join(",", keys.ToArray())的更多相关文章
- C#利用 string.Join 泛型集合快速转换拼接字符串
C#利用 string.Join 泛型集合快速转换拼接字符串 List<int> superior_list = new List<int>(); superior_list. ...
- 《零基础学JavaScript(全彩版)》学习笔记
<零基础学JavaScript(全彩版)>学习笔记 二〇一九年二月九日星期六0时9分 前期: 刚刚学完<零基础学HTML5+CSS3(全彩版)>,准备开始学习JavaScrip ...
- string.join加引号
columnsGen = string.Join(",", modelDictionary.Keys); valueGen = modelDictionary.Values.Agg ...
- C# - Dictionary join keys or join Values
using System; using System.Collections.Generic; using System.Linq; using System.Text; public class P ...
- [Python] 文科生零基础学编程系列二——数据类型、变量、常量的基础概念
上一篇:[Python] 文科生零基础学编程系列--对象.集合.属性.方法的基本定义 下一篇: (仍先以最简单的Excel的VBA为例,语法与Python不同,但概念和逻辑需要理解透彻) p.p1 { ...
- .net基础学java系列(三)徘徊反思
.net基础学java系列(三)徘徊反思 上一篇文章:.net基础学java系列(二)IDE 之 插件 这两天晚上看完了IDEA的教学视频:https://edu.51cto.com/course/1 ...
- D10——C语言基础学PYTHON
C语言基础学习PYTHON——基础学习D10 20180906内容纲要: 1.协程 (1)yield (2)greenlet (3)gevent (4)gevent实现单线程下socket多并发 2. ...
- 零基础学python-3.2 变量赋值
这一节我们来具体展开变量赋值 1.以下我们举各种赋值的样例 anInt=12 anFloat=2.2 anStr='string' aList=['a','a','a'] anArray=(1,2,3 ...
- 【雕爷学编程】MicroPython动手做(04)——零基础学MaixPy之尝试运行
1.hello micropython #MicroPython动手做(04)——零基础学MaixPy之基本示例 #程序之一:hello micropython #MicroPython动手做(04) ...
随机推荐
- Python error: Microsoft Visual C++ 9.0 is required 解决方案
换了新电脑,在使用python2.7 pip 安装ipython时,报错了 error: Microsoft Visual C++ 9.0 is required. Get it from http: ...
- 峰Redis学习(7)Redis 之Keys 通用操作
keys * 显示所有key 查找所有以s开头的key 用s* *代表任意字符 127.0.0.1:6379> keys s* 1) "set3" 2) "s ...
- mybatis 报错Result Maps collection does not contain value for java.lang.Integer
重点:报错的方法和xml文件不一定是错误的位置,如果有多个xml文件,必须检查所有的文件 搜索 resultMap="java.lang.Integer" 找到对应的文件,改为 ...
- Java zxing生成二维码所需的jar包
免费的,不需要积分. 共有2个jar包, 链接: https://pan.baidu.com/s/1QJcEkRQOp1NdrNAgGC6LvQ 密码: 4524
- centos找不到vim命令
linux系统执行vim命令时,提示centos -bash : vim:command not found 这个时候需要检查vim编辑器是否安装: 输入rpm -qa|grep vim命令, ...
- delphi中Application.MessageBox函数用法详解
delphi中Application.MessageBox函数用法详解 Application.MessageBox是TApplication的成员函数,声明如下:functionTApplicati ...
- CS229 6.11 Neurons Networks implements of self-taught learning
在machine learning领域,更多的数据往往强于更优秀的算法,然而现实中的情况是一般人无法获取大量的已标注数据,这时候可以通过无监督方法获取大量的未标注数据,自学习( self-taught ...
- 基于Linux命令行KVM虚拟机的安装配置与基本使用
背景 由于生产环境的服务器并不会安装桌面环境,简单操作的图形化安装也不适合批量部署安装.因此,我还是更倾向于在命令下安装配置KVM虚拟机.结合了一些资料和个人使用的状况,我大致列出了一些基本和常用的使 ...
- python hashillb 模块
hashlib主要提供字符加密功能,将md5和sha模块整合到了一起,支持md5,sha1, sha224, sha256, sha384, sha512等算法 import hashlib # ## ...
- django之前-----web应用与框架
一web应用 web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件.应用程序有两种模式C/S.B/S. 下面来看一个简 ...