C#读取csv、xls、sql数据库的实现
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.Odbc;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.IO; /// <summary>
/// 读取数据并返回数据集
/// </summary>
public class ReadData
{
private string filename = null;//文件名
private string filepath = null;//路径
public ReadData()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 初始化文件路径
/// </summary>
/// <param name="cfilepath">文件路径</param>
/// <param name="cfilename">文件名称</param>
public ReadData(string cfilepath, string cfilename)
{
filename = cfilename;
filepath = cfilepath;
}
/// <summary>
/// 读取csv格式文件
/// </summary>
/// <param name="sqlstr">sql语句</param>
/// <returns></returns>
public DataSet Readcsv(string sqlstr)
{
DataSet ds = new DataSet();
string strcon = @"Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=" + filepath + ";Extensions=asc,csv,tab,txt";//IMEX=1数据以文本读取
using (OdbcConnection odbccon = new OdbcConnection(strcon))
{
odbccon.Open();
OdbcCommand odbccom = new OdbcCommand();
odbccom.Connection = odbccon;
odbccom.CommandText = sqlstr;
OdbcDataAdapter odbcda = new OdbcDataAdapter(odbccom);
odbcda.Fill(ds);
odbccon.Close();
}
return ds;
}
/// <summary>
///
/// </summary>
/// <param name="sqlstr">sql语句读取数据</param>
/// <param name="c">表的列标</param>
/// <param name="s1">开始位置</param>
/// <param name="s2">结束位置</param>
/// <returns></returns>
public DataSet Readcsv(string sqlstr, int c, string s1, string s2)
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
DataRow dr;
DataColumn dc;
string strcon = @"Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=" + filepath + ";Extensions=asc,csv,tab,txt";//IMEX=1数据以文本读取
using (OdbcConnection odbccon = new OdbcConnection(strcon))
{
odbccon.Open();
OdbcCommand odbccom = new OdbcCommand();
odbccom.Connection = odbccon;
odbccom.CommandText = sqlstr;
OdbcDataReader odbcdr = odbccom.ExecuteReader();
for (int i = ; i < odbcdr.FieldCount; i++)
{
dc = new DataColumn();
dc.ColumnName = odbcdr.GetName(i);
dc.DataType = odbcdr.GetFieldType(i);
dt.Columns.Add(dc);
}
bool flag = false;
if (c == )
{
while (odbcdr.Read())
{
if (Convert.ToDateTime(s1) <= Convert.ToDateTime(odbcdr[c].ToString()))
{
flag = true;
break;
}
}
if (flag)
{
do
{
dr = dt.NewRow();
for (int j = ; j < odbcdr.FieldCount; ++j)
{
dr[j] = odbcdr[j];
}
dt.Rows.Add(dr);
if (Convert.ToDateTime(s2) <= Convert.ToDateTime(odbcdr[c].ToString()))
{ break; }
}
while (odbcdr.Read());
odbccon.Close();
ds.Tables.Add(dt);
}
}
else
{
while (odbcdr.Read())
{
if (s1 == odbcdr[c].ToString().Trim())
{
flag = true;
break;
}
}
if (flag)
{
do
{
dr = dt.NewRow();
for (int j = ; j < odbcdr.FieldCount; ++j)
{
dr[j] = odbcdr[j];
}
dt.Rows.Add(dr);
if (s2 == odbcdr[c].ToString().Trim())
{
break;
}
}
while (odbcdr.Read());
odbccon.Close();
ds.Tables.Add(dt);
}
//Response.Write("<script> alert('输入时间错误!') </script>");
}
}
return ds;
}
/// <summary>
/// 读取csv格式文件
/// </summary>
/// <param name="sqlstr"></param>
/// <param name="c"></param>
/// <param name="s1"></param>
/// <param name="s2"></param>
/// <param name="node">节点</param>
/// <returns></returns>
public DataSet Readcsv(string sqlstr, int c, string s1, string s2, string node)
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
DataRow dr;
DataColumn dc;
string strcon = @"Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=" + filepath + ";Extensions=asc,csv,tab,txt";//IMEX=1数据以文本读取
using (OdbcConnection odbccon = new OdbcConnection(strcon))
{
odbccon.Open();
OdbcCommand odbccom = new OdbcCommand();
odbccom.Connection = odbccon;
odbccom.CommandText = sqlstr;
OdbcDataReader odbcdr = odbccom.ExecuteReader();
for (int i = ; i < odbcdr.FieldCount; i++)
{
dc = new DataColumn();
dc.ColumnName = odbcdr.GetName(i);
dc.DataType = odbcdr.GetFieldType(i);
dt.Columns.Add(dc);
}
bool flag = false;
if (c == )
{
while (odbcdr.Read())
{
if (node == odbcdr[].ToString().Trim().Remove()&&Convert.ToDateTime(s1) <= Convert.ToDateTime(odbcdr[c].ToString()))
{
flag = true;
break;
}
}
if (flag)
{
do
{
if (node == odbcdr[].ToString().Trim().Remove())
{
dr = dt.NewRow();
for (int j = ; j < odbcdr.FieldCount; ++j)
{
dr[j] = odbcdr[j];
}
dt.Rows.Add(dr);
}
if (Convert.ToDateTime(s2) <= Convert.ToDateTime(odbcdr[c].ToString()))
{ break; }
}
while (odbcdr.Read());
odbccon.Close();
ds.Tables.Add(dt);
}
}
else
{
while (odbcdr.Read())
{
if (s1 == odbcdr[c].ToString().Trim() && node == odbcdr[].ToString().Trim().Remove())
{
flag = true;
break;
}
}
if (flag)
{
do
{
if (node == odbcdr[].ToString().Trim().Remove())
{
dr = dt.NewRow();
for (int j = ; j < odbcdr.FieldCount; ++j)
{
dr[j] = odbcdr[j];
}
dt.Rows.Add(dr);
}
if (s2 == odbcdr[c].ToString().Trim())
{
break;
}
}
while (odbcdr.Read());
odbccon.Close();
ds.Tables.Add(dt);
}
//Response.Write("<script> alert('输入时间错误!') </script>");
}
}
return ds;
}
/// <summary>
/// 读取xls格式文件
/// </summary>
/// <param name="sqlstr">sql语句</param>
/// <returns></returns>
public DataSet Readxls(string sqlstr)
{
DataSet ds = new DataSet();
string path = Path.Combine(filepath, filename + ".xls");
string strcon = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties=Excel 8.0";//IMEX=1数据以文本读取
using (OleDbConnection oledbcon = new OleDbConnection(strcon))
{
oledbcon.Open();
OleDbCommand oledbcom = new OleDbCommand();
oledbcom.Connection = oledbcon;
oledbcom.CommandText = sqlstr;
OleDbDataAdapter oledbda = new OleDbDataAdapter(oledbcom);
oledbda.Fill(ds);
oledbcon.Close();
}
return ds;
}
/// <summary>
///
/// </summary>
/// <param name="sqlstr">sql语句读取数据</param>
/// <param name="c">表的列标</param>
/// <param name="s1">开始位置</param>
/// <param name="s2">结束位置</param>
/// <returns></returns>
public DataSet Readxls(string sqlstr, int c, string s1, string s2)
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
DataRow dr;
DataColumn dc;
string path = Path.Combine(filepath, filename + ".xls");
string strcon = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties=Excel 8.0";//IMEX=1数据以文本读取
using (OleDbConnection odbccon = new OleDbConnection(strcon))
{
odbccon.Open();
OleDbCommand odbccom = new OleDbCommand();
odbccom.Connection = odbccon;
odbccom.CommandText = sqlstr;
OleDbDataReader odbcdr = odbccom.ExecuteReader();
for (int i = ; i < odbcdr.FieldCount; i++)
{
dc = new DataColumn();
dc.ColumnName = odbcdr.GetName(i);
dc.DataType = odbcdr.GetFieldType(i);
dt.Columns.Add(dc);
}
bool flag = false;
while (odbcdr.Read())
{
if (s1 == odbcdr[c].ToString().Trim())
{
flag = true;
break;
}
}
if (flag)
{
while (odbcdr.Read())
{
dr = dt.NewRow();
for (int j = ; j < odbcdr.FieldCount; ++j)
{
dr[j] = odbcdr[j];
}
dt.Rows.Add(dr);
if (s2 == odbcdr[c].ToString().Trim())
{
break;
}
}
odbccon.Close();
ds.Tables.Add(dt);
}
else { return null; }//Response.Write("<script> alert('输入时间错误!') </script>");
}
return ds;
}
/// <summary>
/// 读取sql数据库文件
/// </summary>
/// <param name="sqlstr">sql语句</param>
/// <returns></returns>
public DataSet ReadSql(string sqlstr)
{
DataSet ds = new DataSet();
//string strcon = @"uid=sa;password=123456;initial catalog=data;Server=.;Connect Timeout=30";
string strcon = @"Trusted_connection=SSPI;initial catalog=data;Server=.";
using (SqlConnection sqlcon = new SqlConnection(strcon))
{
sqlcon.Open();
SqlCommand sqlcom = new SqlCommand();
sqlcom.Connection = sqlcon;
sqlcom.CommandText = sqlstr;
SqlDataAdapter sqlda = new SqlDataAdapter(sqlcom);
sqlda.Fill(ds);
sqlcon.Close();
}
return ds;
}
/// <summary>
/// 把数据集中的数据导入sql数据库
/// </summary>
/// <param name="ds">导入的数据集</param>
/// <param name="tablename">表名</param>
public void DataToSql(DataSet ds, string tablename)
{
//string strcon = @"uid=sa;password=123456;initial catalog=data;Server=.;Connect Timeout=30";
string strcon = @"Trusted_connection=SSPI;initial catalog=data;Server=.";
using (SqlConnection sqlcon = new SqlConnection(strcon))
{
sqlcon.Open();
SqlCommand sqlcom = new SqlCommand();
sqlcom.Connection = sqlcon;
for (int i = ; i < ds.Tables[].Rows.Count; ++i)
{
sqlcom.CommandText = "insert into " + tablename + " values('" + Convert.ToDateTime(ds.Tables[].Rows[i][]) + " ','" + ds.Tables[].Rows[i][] + " ','" + ds.Tables[].Rows[i][] + " ','" + ds.Tables[].Rows[i][] + " ')";
sqlcom.ExecuteNonQuery();
}
sqlcon.Close();
}
}
/// <summary>
/// 初始化路径
/// </summary>
public void clear()
{
filename = null;
filepath = null;
}
}
C#读取csv、xls、sql数据库的实现的更多相关文章
- PHP读取CSV数据写入数据库
/*读取csv文件*/ public function testCsv(){ $fileName = "tel.csv"; $fp=fopen($fileName,"r& ...
- C#窗体读取EXCEL存入SQL数据库
windows窗体上放了一个Textbox1,2个按钮button1和button2~按button1选择excel文件~按button2进行相关处理 Code Snippet private vo ...
- C#运用实例.读取csv里面的词条,对每一个词条抓取百度百科相关资料,然后存取到数据库
第一步:首先需要将csv先装换成datatable,这样我们就容易进行对datatable进行遍历: /// 将CSV文件的数据读取到DataTable中 /// CSV文件路径 /// 返回读取了C ...
- java读取CSV文件添加到sqlserver数据库
在直接将CSV文件导入sqlserver数据库时出现了错误,原因还未找到,初步怀疑是数据中含有特殊字符.于是只能用代码导数据了. java读取CSV文件的代码如下: package experimen ...
- jquery autocomplete实现读取sql数据库自动补全TextBox
转自我本良人 原文 jquery autocomplete实现读取sql数据库自动补全TextBox 项目需要这样子一个功能,其他部门提的意见,只好去实现了哦,搞了好久才弄出来,分享一下. 1.前台页 ...
- PHP读取CSV大文件导入数据库的示例
对于数百万条数据量的CSV文件,文件大小可能达到数百M,如果简单读取的话很可能出现超时或者卡死的现象. 为了成功将CSV文件里的数据导入数据库,分批处理是非常必要的. 下面这个函数是读取CSV文件中指 ...
- 将csv文件导入sql数据库
有一个csv文件需要导入到Sql数据库中,其格式为 “adb”,"dds","sdf" “adb”,"dds","sdf" ...
- 第八课: - 从Microsoft SQL数据库读取
第 8 课 如何从Microsoft SQL数据库中提取数据 In [1]: # Import libraries import pandas as pd import sys from sqlalc ...
- C# ASP.NET CSV文件导入数据库
原文:C# ASP.NET CSV文件导入数据库 using System; using System.Collections.Generic; using System.Text; using Sy ...
随机推荐
- 【EWM系列】SAP EWM模块-部分流程图
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[EWM系列]SAP EWM模块-部分流程图 ...
- Rust OpenGL配置
下载这个项目 https://github.com/Nercury/rust-and-opengl-lessons 进入 rust-and-opengl-lessons\lesson-04 目录 记得 ...
- Entity Framework 中遇到的一些小问题
一.在多表关联中,一个表中有另一个表的model累,在Include方法里提示lambda表达式不是委托类型,这时候需要using System.Data.Entity; 二.插入数据时,主键并非自增 ...
- vuejs基础-计算器案例
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- No-sql之redis常用命令
转自:http://blog.csdn.net/nicewuranran/article/details/51793760 No-SQL之Redis 介绍 Redis是一种基于内存存储的key-val ...
- MySQL格式化时间戳 统计当日,第二天,第三天,3个工作日以后的数据
mysql 查询出来的处理时间和开始时间都是13位的时间戳 SELECT `END_TIME`,`CREATE_TIME` FROM t_table 需求是统计当日,第二天,第三天,3个工作日以后的时 ...
- Linux-第二篇常用命令
1.常用目录文件操作命令 cd:切换目录 格式:cd 目录 ls:显示文件和目录列表.可选参数: -l 列出文件的详细信息 -a 列出当前目录所有文件,包含隐藏文件 ll:查看目录接口,相当于是ls ...
- ubuntu18.04 搭建scrapy环境(连环踩坑+解决办法)
---恢复内容开始--- 预期需求: 打算搭建scrapy环境,基于python3.x的 环境描述: ubuntu18.04自带了python3.6,打算在虚拟环境vlenv中跑scrapy,装好虚拟 ...
- python学习第二十天文件操作方法
字符有的存储在内存,有的存储在硬盘,文件也有增删改查的操作方法,open()方法,read()方法,readline()方法,close()文件关闭,write()写的方法,seek() 指针移动方法 ...
- metasploit下Windows的多种提权方法
metasploit下Windows的多种提权方法 前言 当你在爱害者的机器上执行一些操作时,发现有一些操作被拒绝执行,为了获得受害机器的完全权限,你需要绕过限制,获取本来没有的一些权限,这些权限可以 ...