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. Play with Chain 【HDU - 3487】【Splay+TLE讲解】

    题目链接 很好的一道题,用了三天多的时间,终于知道了我为什么T的原因,也知道了在Splay的同时该怎样子的节约时间,因为Splay本身就是大常数的O(N*logN),我们如果不在各种细节上节约时间,很 ...

  2. css圣杯布局

    HTML <div class="container"> <div class="content">content</div> ...

  3. c#处理json格式类型的字符串

    string channelGroup=[{"SpType":"1","BaseInfoId":["xxx"," ...

  4. servlet--context域

    ServletContext(重要) 一个项目只有一个ServletContext对象! 我们可以在N多个Servlet中来获取这个唯一的对象,使用它可以给多个Servlet传递数据! 与天地同寿!! ...

  5. ubantu 安装软件

    一.解压后bin文件夹里有setup.py 进入到setup.py的目录,执行命令: sudo python3 setup.py install 二.以.whl结尾的文件 直接运行命令: sudo p ...

  6. <搬运> SQL语句百万数据量优化方案

    一:理解sql执行顺序 在sql中,第一个被执行的是from语句,每一个步骤都会产生一个虚拟表,该表供下一个步骤查询时调用,比如语句:select top 10 column1,colum2,max( ...

  7. Junit测试错误:### Error building SqlSession

    错误代码: org.apache.ibatis.exceptions.PersistenceException: ### Error building SqlSession.### The error ...

  8. HNCPC2019部分题解

    ProblemSet 签到题就不写了. C. Distinct Substrings 先对原串建出SAM,map存边. 由于这题相当于添加一个字符再删除这个字符,添加下一个字符,所以每次都暴力跳后缀链 ...

  9. P4929 【模板】舞蹈链(DLX)

    题目背景 本题是舞蹈链模板——精确覆盖问题 题目描述 给定一个N行M列的矩阵,矩阵中每个元素要么是1,要么是0 你需要在矩阵中挑选出若干行,使得对于矩阵的每一列j,在你挑选的这些行中,有且仅有一行的第 ...

  10. rancher部署K8S

    环境:centos7 docker 日期准确 关闭防火墙 安装docker 创建 vim /etc/docker/daemon.json {    "registry-mirrors&quo ...