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. Postman初接触

    https://www.getpostman.com/docs/postman/launching_postman/installation_and_updates

  2. eclipse配置,快捷键备忘

    1. General --> Workspace --> UTF-82. General --> Editors --> Associations --> JSP --& ...

  3. jmeter 添加header

    接口说明文档: article.fetch(通用转码服务) 通用转码服务,获取任意 url 的正文以及 title 等基本信息,仅支持 post 方法请求. 参数 参数 类型 是否必须 示例 其它说明 ...

  4. 解决Ubuntu12.04下rpcbind: cannot open '/var/run/rpcbind/rpcbind.xdr' file for reading

    不知道怎么回事,实验室的电脑在同学搞过之后,每次启动都报错 rpcbind: cannot open '/run/rpcbind/rpcbind.xdr' file for reading, errn ...

  5. dp(最长升序列)

    http://poj.org/problem?id=2533   题意:给你n(1-1000)个数,求这n个数的最长升序列.   题解:dp[i]表示以第i个数结尾的最长升序列. #include & ...

  6. [NOIP2016PJ]魔法阵

    今天模拟赛的题,,,唯一没有Giao出来的题(不然我就AKIOI了~) 最开始没想到数学题,把所有部分分都说一遍吧: 35分:纯暴力O(M^4)枚举,对于每一组a,b,c,d验证其是否合法. 60分: ...

  7. [暑假集训Day1T2]北极通讯网络

    这题主要考察对“卫星电话”的理解,k个卫星电话相当于可以让k个联通块保持联通,因此我们只需要让原图连成k个联通块,然后给每个联通块的任意一个节点发一部卫星电话即可.因此我们需要连n-k条边,特别地,当 ...

  8. 【题解】Intervals

    题目大意   有\(n\)个区间(\(1 \leq n \leq 200\)),第\(i\)个区间覆盖\((a_{i}, b_{i})\)且有权值\(w_{i}\)(\(1 \leq a_{i} &l ...

  9. php上传文件如何保证上传文件不被改变或者乱码

    很多网站上传文件都截取文件后缀,前面用时间错加后缀组成,然而一下下载的网站并不需要这样,需要保持原来的文件名,这里讲述一下 //上传操作 function uploadify(){ //var_dum ...

  10. Centos 7.6安装mysql服务端5.7

    环境:centos 7.6,mysql server 5.7.26 新建文件夹/opt/mysql,并cd进去 运行wget http://dev.mysql.com/get/mysql-5.7.26 ...