数据读取(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)进行数据读取的技巧总结(经典中的经典)由于 ...
随机推荐
- 利用clonezilla克隆、还原CentOS整个系统
实现目的:全盘备份CentOS 6.0系统到U盘或者到移动硬盘 操作步骤: 1.制作再生龙镜像启动光盘或U盘,插入到要备份的CentOS 6.0 Linux上面,设置好开机启动(我这里用的是U盘,所以 ...
- [转]ps命令详解
原文地址:http://apps.hi.baidu.com/share/detail/32573968 转载自:http://www.cnblogs.com/wangkangluo1/archive/ ...
- 使用@Autowird注入报空指针异常
new的对象不能调用此对象里面注入的其他类,如果想要调用注入的其他类,则此new的对象要使用@componet将此类注入. 原因:
- 排序算法(sorting algorithm) 之 选择排序(selection sort)
https://en.wikipedia.org/wiki/Selection_sort loop1: 4,6,1,3,7 -> 4,6,1,3,7 4,6,1,3,7 -> ,3,7 1 ...
- windows下Apache配置多个站点
1. httpd.conf 找到以下两行去掉注释: # Include conf/extra/httpd-vhosts.conf # LoadModule vhost_alias_module mod ...
- Koa 学习笔记
开始 就像官网上说的,一切框架都从一个"Hello World"开始,首先我们新建一个 package.json,内容尽量简单: { "name": " ...
- hive on spark 参数设置
; ; set spark.executor.memory=5G;
- linux 用tcpdump查看80端口访问有哪些IP
linux 用tcpdump查看80端口访问有哪些IP: tcpdump -i eth0 -tnn dst port 80 -c 1000|awk -F"." '{print $1 ...
- python 二分查找法
@source_data:数据集 @binary_num:要查找的数 @mid:中间数的键值 def binary_search(source_data,search_num): #传入数据集计算中间 ...
- 一次java Cpu占用过高的排查
某一个项目CPU占用率一直很高,经常在40%-50%之间,最近比较闲,就开始了排查工作. 1.通过 jstack命令输出进程的堆栈信息 jstack 2788 >C:\log.txt 将堆栈信息 ...