最近系统出现一个错误,排查了很久,发现判断DataTable 列名是否存在时,发现一个坑,居然不会区分中英文符合。

有谁知道其中的原理?先记录一下,免得以后忘记这个天坑。

一. 先初始化一个DataTable.

DataTable dt = new DataTable();

dt.Columns.Add("(一)", typeof(string));
dt.Columns.Add("(二)", typeof(string));
dt.Columns.Add("(三)", typeof(string));
dt.Columns.Add("(四)", typeof(string)); DataRow dr = dt.NewRow();
dr[] = "";
dr[] = "";
dr[] = "";
dr[] = ""; dt.Rows.Add(dr);

二. 用dt.Columns.Contains 判断列名是否存在

Console.WriteLine(dt.Columns.Contains("一"));      //false
Console.WriteLine(dt.Columns.Contains("(一)")); //true
Console.WriteLine(dt.Columns.Contains("(一)")); //true 表面上应该是false

三. 用dt.Columns的 索引 判断列名是否存在

Console.WriteLine(dt.Columns["一"] == null);     //true
Console.WriteLine(dt.Columns["(一)"] == null); //false
Console.WriteLine(dt.Columns["(一)"] == null); //false 按道理应该是true

关于DataTable 判断 列名是否存在的方法中英文符合不区分?的更多相关文章

  1. DataTable 获取列名 DataTable批量更新至数据库

    好久没写东西了,这几个月也没下功夫钻研技术,愧疚啊.说下最近刚学会的DataTable 的用法吧,新手适合看下. 1 DataTable 获取列名 在处理数据的时候大家都会用到模型,从datatabl ...

  2. WebGIS中一种根据网格索引判断点面关系的方法

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 判断点面关系的算法有很多,在我之前的博文中有一篇专门对其进行 ...

  3. JS - IE or not:判断是否为IE浏览器方法

    问题:使用JS判断是否为IE浏览器 方法: 1.IE='\v'=='v'  (失败!) if('\v'=='v') // true only in IE 2.IE=(!+"\v1" ...

  4. Shell脚本中判断输入参数个数的方法投稿:junjie 字体:[增加 减小] 类型:转载

    Shell脚本中判断输入参数个数的方法 投稿:junjie 字体:[增加 减小] 类型:转载   这篇文章主要介绍了Shell脚本中判断输入参数个数的方法,使用内置变量$#即可实现判断输入了多少个参数 ...

  5. jQuery 判断是否为数字的方法 及 转换数字函数

    <script language="javascript"> var t=$("#id").val();//这个就是我们要判断的值了 if(!isN ...

  6. Java中判断是否为空的方法

    1.判断字符串或者对象是否为空 首先来看一下工具StringUtils的判断方法: 一种是org.apache.commons.lang3包下的: 另一种是org.springframework.ut ...

  7. Java开发中判断集合类为空的方法-转载

    避免写两个判断 org.springframework.util.CollectionUtils 方法: public static boolean isEmpty(Collection collec ...

  8. 例:判断是不是自有属性hasOwnProperty方法

    自有属性和共有属性: 自有属性:直接保存在对象本地的属性 共有属性:保存在原型对象中,被所有子对象共享的属性 获取时:都可用对象.属性方法 赋值时:自有属性,必须:对象.属性 = 值 共有属性,必须: ...

  9. javascript 判断数据类型的几种方法

    javascript 判断数据类型的几种方法一.typeof 直接返回数据类型字段,但是无法判断数组.null.对象 typeof 1 "number" typeof NaN &q ...

随机推荐

  1. 牛客网 272B Xor Path(树上操作)

    题目链接:Xor Path 题意:每个顶点的点权为Ai,任意两点路径上点权异或和为Path(i,j),求所有Path(i,j)和. 题解:考虑每个顶点被用到的次数,分以下三种情况: 1.本身和其他顶点 ...

  2. Luogu3768简单的数学题

    题目描述 题解 我们在一通化简上面的式子之后得到了这么个东西. 前面的可以除法分块做,后面的∑T2∑dµ(T/d)是积性函数,可以线性筛. 然后这个数据范围好像不太支持线性筛,所以考虑杜教筛. 后面那 ...

  3. plsql 永久注册码适用个版本

    注册码:Product Code:4t46t6vydkvsxekkvf3fjnpzy5wbuhphqzserial Number:601769 password:xs374ca

  4. (五) vivi代码分析

    目录 vivi代码分析 初始化注册 使用open/read/ioctl 系统调用分析 ioctl流程一览 总结 title: vivi代码分析 date: 2019/4/23 19:30:00 toc ...

  5. NameNode和SecondaryNameNode工作原理剖析

    NameNode和SecondaryNameNode工作原理剖析 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.NameNode中的元数据是存储在那里的? 1>.首先,我 ...

  6. Intellij IDEA 4种配置热部署的方法【转】【补】

    热加载 热加载可以使代码修改后无须重启服务器,就可以加载更改的代码.(其实分java和非java代码,本处可以让java代码立即生效且不重启服务) 第1种:修改服务器配置,使得IDEA窗口失去焦点时, ...

  7. JGUI源码:组件及函数封装方法(7)

    以Accordion为例1.在base.js定义一个对象,这样可以和JQuery对象区分开,用户使用组件时比较清晰一点,也可以在这里引用多个库. var JGUI = J = { version : ...

  8. webpack-dev-server live reloading 技术实现

    webpack-dev-server  live reloading https://github.com/webpack/webpack-dev-server Use webpack with a ...

  9. react native头部标题样式修改

    navigationOptions: ({navigation}) => ({ headerTitle:'评估记录', headerBackTitle:null, headerLeft:null ...

  10. How to delete VSTS Project

    Buiding is so easy , Where is deleting ? C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7 ...