数据读取(SQL)与文本写入(fileStream)
要求:从三个不同服务器中取数,对最近10的历史数据进行去重,写出到文本。
1.读取。
public static DataTable ExecuteSql(string connectString, string querySqlString)
{
DataTable dt = new DataTable();
using (SqlConnection conn = new SqlConnection(connectString))
{
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = querySqlString;
using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
{
adapter.SelectCommand.CommandTimeout = * ;
adapter.Fill(dt);
return dt;
}
}
}
当然,另外还有一种,定义了一个我要使用的类型,返回List<T>:
public static List<MarketUrl> GetUrlListFromDataBase(string serverName, string sqlString)
{
List<MarketUrl> list = new List<MarketUrl>();
MarketUrl mu = new MarketUrl();
string connectStr = ConfigurationManager.ConnectionStrings[serverName].ConnectionString;
using (SqlConnection conn = new SqlConnection(connectStr))
{
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = sqlString;
cmd.CommandTimeout = * ;
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
var dr = new MarketUrl()
{
market = reader.GetString(reader.GetOrdinal("MarketCode")),
url = reader.GetString(reader.GetOrdinal("Url"))
};
list.Add(dr);
}
}
return list;
}
2.去重(我的思路是,在取数的时候,对各自的data select 的时候先进行distinct,然后三个data merge到一起时,再次duplicate):
//colmuns 是distinct的 数组,为columnName
public static DataTable GetDistinctRow(DataTable dt, string[] columns)
{
DataView dv = dt.DefaultView;
DataTable dtDistinct = dv.ToTable(true, columns);
return dtDistinct;
}
3.DataRows ConvertTo DataTable
//这是个额外用的到操作,先记下
public static DataTable ConvertToDataTable(DataRow[] rows)
{
if (rows == null || rows.Count() < )
return null;
DataTable dtResult = rows[].Table.Clone();
foreach (DataRow r in rows)
{
dtResult.Rows.Add(r.ItemArray);
}
return dtResult;
}
4.写入到文本,因code还涉及到别的一些操作,这里只写最简单部分:
StringBuilder sb = new StringBuilder();
foreach (DataRow row in dt.Rows)
{
sb.AppendLine(dateString + " " + row[].ToString() + " " + row[].ToString());
}
using (FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write))
7 {
using (TextWriter tw = new StreamWriter(fs, Encoding.Default))
{
tw.Write(sb.ToString());
}
}
File.WriteAllText(logPath, "[" + DateTime.UtcNow + "] Successed...\r\n");
数据读取(SQL)与文本写入(fileStream)的更多相关文章
- 把读取sql的结果写入到excel文件
1.利用pandas模块 # encoding: utf-8 import time import pandas as pd import pymysql def getrel(sql): ''' 连 ...
- 读取excel数据生成sql脚本
package com.interact.util; import jxl.Cell; import jxl.Sheet; import jxl.Workbook; import jxl.read.b ...
- 转: 从Mysql某一表中随机读取n条数据的SQL查询语句
若要在i ≤ R ≤ j 这个范围得到一个随机整数R ,需要用到表达式 FLOOR(i + RAND() * (j – i + 1)).例如, 若要在7 到 12 的范围(包括7和12)内得到一个随机 ...
- 读取数据表中第m条到第n条的数据,SQL语句怎么写?
原文:读取数据表中第m条到第n条的数据,SQL语句怎么写? 对于MySQL或者Oracle来说,如果实现从Table 表中取出第 m 条到第 n 条的记录操作,我们需要TOP函数(不是所有的数据库都支 ...
- 从Mysql某一表中随机读取n条数据的SQL查询语句
若要在i ≤ R ≤ j 这个范围得到一个随机整数R ,需要用到表达式 FLOOR(i + RAND() * (j – i + 1)).例如, 若要在7 到 12 的范围(包括7和12)内得到一个随机 ...
- nodejs之流数据读取与写入
1.(fs.createReadStream)当文件比较大时,建议使用文件流读取,不会出现卡顿现象,demo如下. const fs = require('fs'); //流的方式读取文件 var r ...
- Excel导入数据到Sql server 中出错:“文本被截断,或者一个或多个字符在目标代码页中没有匹配项”
从Excel导入数据到Sql server 时,由于表中的数据有的很长,导入时出现如下错误(如果数据不是很长,255内以内,则不会出现错误): 出错原因: SQL Server的导入导出为了确定数据表 ...
- Spark学习之数据读取与保存总结(二)
8.Hadoop输入输出格式 除了 Spark 封装的格式之外,也可以与任何 Hadoop 支持的格式交互.Spark 支持新旧两套Hadoop 文件 API,提供了很大的灵活性. 要使用新版的 Ha ...
- 【原】Learning Spark (Python版) 学习笔记(二)----键值对、数据读取与保存、共享特性
本来应该上周更新的,结果碰上五一,懒癌发作,就推迟了 = =.以后还是要按时完成任务.废话不多说,第四章-第六章主要讲了三个内容:键值对.数据读取与保存与Spark的两个共享特性(累加器和广播变量). ...
- MATLAB对于文本文件(txt)数据读取的技巧总结(经典中的经典)
振动论坛原版主eight的经典贴http://www.chinavib.com/thread-45622-1-1.html MATLAB对于文本文件(txt)进行数据读取的技巧总结(经典中的经典)由于 ...
随机推荐
- (转)RandomAccessFile类使用详解
1.RandomAccessFile特点 RandomAccessFile是java Io体系中功能最丰富的文件内容访问类.即可以读取文件内容,也可以向文件中写入内容.但是和其他输入/输入流不同的 ...
- idea取消double shift全局搜索
一是因为它和输入法经常冲突,二来是因为它完全可以被其它的快捷键代替,如Ctrl+n,ctrl+shift+n,ctrl+shift+f之类的: 取消的方法,按ctrl+shift+a,然后输入regi ...
- Vue下载页面显示内容
摘抄自 https://www.cnblogs.com/zhangtianqi520/p/9323873.html 先下载所需依赖 npm install --save html2canvas npm ...
- windows安装zookeeper
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的功 ...
- PHP引用(&)练习
<?php class talker { private $data = 'Hi'; public function & get(){ //返回值指向一个内容,这里是指向$data的内容 ...
- 可遇不可求的Question之SQLSERVER触发器不支持多行插入操作篇
描述: 我们经常遇到 insert table_a select * from table_b 这样的语句, 同时在表table_a中根据每一条新增的SQL语句,通过触发器来触发对应的一系列的后续操作 ...
- vb越界
想起来一个项目当中,遇到了一个问题,就是老是显示数据溢出. 后来查查查,发现是由于vb的特性造成的.例如cbyte()函数.此函数()里面的数据运算也不能超过cbyte的范围,不然就回发生溢出问题.
- openGL-计算机图形大作业中出现的几个错误及解决
错误一 错误现象:按动相应按键i和o无法在x轴和y轴移动camera,但按相应按键p可以在z轴移动camera. 错误原因:为了移动camera,设置了三个全局变量x.y.z,用于gluLookAt( ...
- Quick_sort
typedef int ElementType; void Quick_sort(ElementType A[], int N) { Quicksort(A, , N-); } void Quicks ...
- vue.js 系列教程
Vuejs——(1)入门(单向绑定.双向绑定.列表渲染.响应函数) Vuejs——(2)Vue生命周期,数据,手动挂载,指令,过滤器 Vuejs——(3)计算属性,样式和类绑定 Vuejs——(4)v ...