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 ...
随机推荐
- 125、TensorFlow计算图的执行
# TensorFlow使用tf.Session类来表示客户端程序之间的链接 # 虽然一个在其他语言中相似的接口也是可以使用的,列如C++ runtime # 一个tf.Session对象提供了访问本 ...
- JavaScript中的十种操作符
① 一元操作符(参与的只有一个变量) 前置递增递减(语句解析到递增/递减时值就被改变了) 后置递增递减(整个语句执行后值再改变) 递增递减也可用于字符串,布尔值,对象等,结果都将是数值: ;v ...
- PHP继承及实现
php学习已经有一段时间了,来对之前的知识积累做个记录. php实现单继承和多实现.单继承: 一个类只能有一个extends 抽象类 ,多实现 :一个类可以implements 多个接口 举个简单的栗 ...
- WebService登陆验证四种方式
在这个WEB API横行的时代,讲WEB Service技术却实显得有些过时了,过时的技术并不代表无用武之地,有些地方也还是可以继续用他的,我之所以会讲解WEB Service,源于我最近面试时被问到 ...
- VS代码自动补全功能
VS代码自动补全功能 新建工程后,依次打开 工具>>代码段管理器>>选择C++>>点击 添加(A)...按钮 ,设置你的代码块的目录 复制以下代码并存为note.s ...
- Hadoop: 在Azure Cluster上使用MapReduce
Azure对于学生账户有260刀的免费试用,火急火燎地创建Hadoop Cluster!本例子是使用Hadoop MapReduce来统计一本电子书中各个单词的出现个数. Let's get hand ...
- git团队协作代码提交步骤
我们公司由五个人同时开发一个项目,大佬建好仓库后叫我们统一提交到dev这个分支,我的分支是hardy,你们只要将这两个值改成你们团队协作中使用的分支即可.代码如下: git add . git com ...
- jQuery基础--jQuery特殊属性操作
1.index() 会返回当前元素在所有兄弟元素里面的索引. <!DOCTYPE html> <html lang="zh-CN"> <head> ...
- SQL常用语句之数据库中表的创建、删除以及属性的修改-篇幅3
一.表的创建: CREATE TABLE [database_name.[schema_name].|schema_name.]table_name (column_name1 data_type ...
- Runnable、Callable、Future、FutureTask的区别
转自:https://blog.csdn.net/jdsjlzx/article/details/52912701 FutureTask既是Future.Runnable,又是包装了Callable( ...