C#学习笔记 ODBC 操作CSV
2016-06-21 18:03
507 查看
1,逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)
规则编辑
1 )开头是不留空,以行为单位。
2 )可含或不含列名,含列名则居文件第一行。
3 )一行数据不跨行,无空行。
4 )以半角逗号(即,)作分隔符,列为空也要表达其存在。
5 )列内容如存在半角逗号(即,)则用半角双引号(即”“)将该字段值包含起来。
6 )列内容如存在半角引号(即”)则应替换成半角双引号(”“)转义,并用半角引号(即”“)将该字段值包含起来。
7 )文件读写时引号,逗号操作规则互逆。
8 )内码格式不限,可为 ASCII、Unicode 或者其他。
9 )不支持特殊字符
2,检查驱动:控制面板->管理工具->数据源(ODBC)->驱动程序(类似Microsoft Access Text Driver (*.txt, *.csv))
注:无驱动,需要安装对应系统的Office(位数保持一致),版本在office2007以上
3,ODBC查询(Select)
4,插入数据
5,读取数据
6,可按照ODBC操作Excel的办法操作CSV文件(前提:按照Excel表格生成的方式生成csv,其实本质是生成excel,只是命名为CSV格式的,所以没有实际意义,如果不按照Excel的生成格式生成csv,会报错:外部表的格式不是预计的类型),可以进行查询,插入,更新操作
规则编辑
1 )开头是不留空,以行为单位。
2 )可含或不含列名,含列名则居文件第一行。
3 )一行数据不跨行,无空行。
4 )以半角逗号(即,)作分隔符,列为空也要表达其存在。
5 )列内容如存在半角逗号(即,)则用半角双引号(即”“)将该字段值包含起来。
6 )列内容如存在半角引号(即”)则应替换成半角双引号(”“)转义,并用半角引号(即”“)将该字段值包含起来。
7 )文件读写时引号,逗号操作规则互逆。
8 )内码格式不限,可为 ASCII、Unicode 或者其他。
9 )不支持特殊字符
2,检查驱动:控制面板->管理工具->数据源(ODBC)->驱动程序(类似Microsoft Access Text Driver (*.txt, *.csv))
注:无驱动,需要安装对应系统的Office(位数保持一致),版本在office2007以上
3,ODBC查询(Select)
//例如---C:\\1.csv System.Data.DataTable dtCSV = new System.Data.DataTable(); string strConn = @"Driver={Microsoft Access Text Driver (*.txt, *.csv)};Dbq="; strConn += filePath; //注意此处为文件路径。例如C:\\ strConn += ";Extensions=asc,csv,tab,txt;"; System.Data.Odbc.OdbcConnection odbcConn = new System.Data.Odbc.OdbcConnection(strConn); try { string strSql = "select * from 1.csv" ; //SQL查询语句1:select * form 表格名 //SQL查询语句2:select * form 表格名 where 条件 //注意:此处的条件会按照csv的第一行数据当做列操作 System.Data.Odbc.OdbcDataAdapter odbcCSVDataAdapter = new System.Data.Odbc.OdbcDataAdapter(strSql, odbcConn); odbcCSVDataAdapter.Fill(dtCSV); if (odbcCSVDataAdapter != null) { odbcCSVDataAdapter.Dispose(); } if (odbcConn != null) { odbcConn.Close(); } } catch (Exception excp) { if (odbcConn != null) { odbcConn.Close(); } }
4,插入数据
using (System.IO.FileStream fs = System.IO.File.Open(fileDirectory + fileName, System.IO.FileMode.Append)) { using (System.IO.StreamWriter sw = new System.IO.StreamWriter(fs)) { sw.WriteLine("A,B,C,D"); sw.Close(); } fs.Close(); } return true; } catch (Exception excp) { // }
5,读取数据
System.Data.DataTable mycsvdt = new System.Data.DataTable(); try { int intColCount = 0; bool blnFlag = true; System.Data.DataColumn mydc; System.Data.DataRow mydr; string strline; string[] aryline; System.IO.StreamReader mysr = new System.IO.StreamReader("C:\\1.csv", Encoding.GetEncoding("Gb2312")); while ((strline = mysr.ReadLine()) != null) { aryline = strline.Split(new char[] { ',' }); intColCount = aryline.Length; //给datatable加上列名 if (blnFlag) { blnFlag = false; for (int i = 0; i < intColCount; i++) { mydc = new System.Data.DataColumn(aryline[i]); mycsvdt.Columns.Add(mydc); } continue; } //填充数据并加入到datatable中 mydr = mycsvdt.NewRow(); for (int i = 0; i < intColCount; i++) { mydr[i] = aryline[i]; } mycsvdt.Rows.Add(mydr); } mysr.Close(); } catch (Exception excp) { // }
6,可按照ODBC操作Excel的办法操作CSV文件(前提:按照Excel表格生成的方式生成csv,其实本质是生成excel,只是命名为CSV格式的,所以没有实际意义,如果不按照Excel的生成格式生成csv,会报错:外部表的格式不是预计的类型),可以进行查询,插入,更新操作
相关文章推荐
- C#学习笔记 ODBC 操作Excel
- C#使用SnmpSharpNet接收snmp的trap消息示例代码
- C#简易线性表实现。
- C# 合并及拆分PDF文件
- C# 合并及拆分PDF文件
- C#中System.DateTime.Now.ToString()用法
- C#取得站点跟目录
- C# list sort 排序
- C#使用ICSharpCode.SharpZipLib.dll压缩文件夹和文件
- C#实现断点续传
- C#创建文件夹
- C#下的两种加密方式MD5和DEC
- C# winForm启动最小化到任务栏右侧通知栏并交互操作
- C# POst 接收或发送XML
- C#使用Microsoft.Office.Interop.Excel.dll读取Excel文件
- C# DES对称加密解密
- c#数组的交集,差集,并集
- 9 在C#控制台程序(console)中让用户输入
- C# xml压缩包不解压的情况下解析xml内容
- C# 博客资源