使用OdbcDataReader.GetValue读取含连字符的社保号返回空串求助
解决OdbcDataReader读取带连字符社保号返回空值的问题
强制指定字段为文本类型
创建一个和CSV文件同名的schema.ini文件,放在CSV所在的同一目录下,内容根据你的CSV结构调整。假设你的CSV文件名为data.csv,社保号字段是第一列,schema.ini内容如下:[data.csv] ColNameHeader=True Format=CSVDelimited Col1=SSN Text Width=11这个文件会告诉Microsoft Text Driver把指定字段当作文本处理,避免它错误地将带连字符的社保号推断为日期或其他不匹配的类型,导致读取为空。
修改连接字符串添加IMEX=1参数
在连接字符串中加入IMEX=1,强制驱动以混合模式读取所有数据,将所有字段按文本类型处理,避免自动类型推断的问题。修改后的连接字符串:"Driver={Microsoft Text Driver (*.txt, *.csv)};dbg=;IMEX=1;"检查CSV文件格式
确认CSV中社保号字段没有额外的空格、不匹配的引号,且字段被正确分隔,避免因格式问题导致驱动无法识别字段内容。
内容的提问来源于stack exchange,提问作者Jyothish Bhaskaran
相关产品推荐
相关产品推荐

