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数据库的实现的更多相关文章

  1. PHP读取CSV数据写入数据库

    /*读取csv文件*/ public function testCsv(){ $fileName = "tel.csv"; $fp=fopen($fileName,"r& ...

  2. C#窗体读取EXCEL存入SQL数据库

    windows窗体上放了一个Textbox1,2个按钮button1和button2~按button1选择excel文件~按button2进行相关处理 Code Snippet private  vo ...

  3. C#运用实例.读取csv里面的词条,对每一个词条抓取百度百科相关资料,然后存取到数据库

    第一步:首先需要将csv先装换成datatable,这样我们就容易进行对datatable进行遍历: /// 将CSV文件的数据读取到DataTable中 /// CSV文件路径 /// 返回读取了C ...

  4. java读取CSV文件添加到sqlserver数据库

    在直接将CSV文件导入sqlserver数据库时出现了错误,原因还未找到,初步怀疑是数据中含有特殊字符.于是只能用代码导数据了. java读取CSV文件的代码如下: package experimen ...

  5. jquery autocomplete实现读取sql数据库自动补全TextBox

    转自我本良人 原文 jquery autocomplete实现读取sql数据库自动补全TextBox 项目需要这样子一个功能,其他部门提的意见,只好去实现了哦,搞了好久才弄出来,分享一下. 1.前台页 ...

  6. PHP读取CSV大文件导入数据库的示例

    对于数百万条数据量的CSV文件,文件大小可能达到数百M,如果简单读取的话很可能出现超时或者卡死的现象. 为了成功将CSV文件里的数据导入数据库,分批处理是非常必要的. 下面这个函数是读取CSV文件中指 ...

  7. 将csv文件导入sql数据库

    有一个csv文件需要导入到Sql数据库中,其格式为 “adb”,"dds","sdf" “adb”,"dds","sdf" ...

  8. 第八课: - 从Microsoft SQL数据库读取

    第 8 课 如何从Microsoft SQL数据库中提取数据 In [1]: # Import libraries import pandas as pd import sys from sqlalc ...

  9. C# ASP.NET CSV文件导入数据库

    原文:C# ASP.NET CSV文件导入数据库 using System; using System.Collections.Generic; using System.Text; using Sy ...

随机推荐

  1. Eclipse总是自动跳到ThreadPoolExecutor

    出现这种状况是因为Eclipse默认开启挂起未捕获的异常(Suspend execution on uncaught exceptions),只要关闭此项就可以了.解决方法:在eclipse中选择Wi ...

  2. 测开之路七十四:python处理kafka

    kafka-python地址:https://github.com/dpkp/kafka-python 安装kafka-python:pip install kafka-python 接收消息 fro ...

  3. mariadb(三)查

    -查询基本使用(条件,排序,聚合函数,分组,分页) 1)创建一个表结构然后添加数据 create table baba (id int unsigned not null auto_increment ...

  4. GB/T2659-2000《世界各国和地区名称代码》

    代码 代码名称 004 阿富汗 008 阿尔巴尼亚 012 阿尔及利亚 016 美属萨摩亚 020 安道尔 024 安哥拉 660 安圭拉 010 南极洲 028 安提瓜和巴布达 032 阿根廷 05 ...

  5. Scala面向对象

    面向对象编程OOP: Scala vs Java 都有这三特性 封装:把属性.方法封装到类中 Person: int id, String name, Date birthday.... 需要gett ...

  6. 如何优雅的实现DML批量操作

    如何优雅的实现DML批量操作(转载) 昨天处理了一个业务同学的数据需求,简单来说就是对一张大表做一下数据清理,数据量在8千万左右,需要保留近一个月的数据,大概是400万左右. 对于数据的删除处理,尤其 ...

  7. spring(四):spring中给bean的属性赋值

    spring中给bean的属性赋值 xml文件properties标签设置 <bean id="student" class="com.enjoy.study.ca ...

  8. 如何用CSS定义一个动画?

    <style type="text/css"> div{ width:100px;height: 100px; animation: carton 5s; backgr ...

  9. 机器学习-线性回归(基于R语言)

    基本概念 利用线性的方法,模拟因变量与一个或多个自变量之间的关系.自变量是模型输入值,因变量是模型基于自变量的输出值. 因变量是自变量线性叠加和的结果. 线性回归模型背后的逻辑——最小二乘法计算线性系 ...

  10. pwd - 显示出当前/活动目录的名称

    总览 (SYNOPSIS) pwd [OPTION] 描述 (DESCRIPTION) 显示出 完整的 当前 活动目录 名称. --help 显示 帮助 信息, 然后 退出 --version 显示 ...