【C#】28. 操作Wind Reference Data

32 篇文章 0 订阅
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Diagnostics;

namespace TestWindReferenceData
{
    class Program
    {
        static void Main(string[] args)
        {
            //成员列表
            string strconn;
            string strCmd1,strCmd2;
            SqlConnection Sconn;
            SqlCommand Scmd;
            SqlDataReader reader;

            //读取数据库连接信息
            strconn = File.ReadAllText(@"E:\长江证券实习\底层数据库\连接信息.txt",Encoding.Default);
            Console.WriteLine("登录信息:{0}",strconn);
            //读取命令:strCmd1
            strCmd1 = File.ReadAllText(@"E:\长江证券实习\底层数据库\SQL命令.txt",Encoding.Default);    //预处理命令
            //建立连接实例
            Sconn = new SqlConnection(strconn);
            Sconn.Open();
            Console.WriteLine("连接状态:{0}", Sconn.State);
            //载入命令
            Scmd = Sconn.CreateCommand();
            Scmd.CommandText = strCmd1 + "SELECT * FROM ##Trading_Dates" ;  //输出日期
            //执行并且读取查询结果:把日期存储到CSV中
            reader = Scmd.ExecuteReader();
            DataTable dt = new DataTable("Trading_Dates");
            dt.Load(reader);
            MyFunctions.DataTable2CSV(dt, @"E:\长江证券实习\8月21日\" + dt.TableName + @".csv");
            reader.Close();
            //CSV转换为数组
            List<string[]> listStrDates = MyFunctions.CSV2List(@"E:\长江证券实习\8月21日\" + dt.TableName + @".csv");
             DateTime curDate, curDateOneYearBefore ;
            for (int i = 1; i < listStrDates.Count; i++)
            {
                curDate = DateTime.ParseExact(listStrDates[i][0].ToString(), "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture);
                curDateOneYearBefore = curDate.AddYears(-1);
                //读取命令:strCmd2
                strCmd2 = File.ReadAllText(@"E:\长江证券实习\底层数据库\SQL命令2.txt", Encoding.Default);    //预处理命令
                strCmd2 = strCmd2.Replace("20100129", curDate.ToString("yyyyMMdd"));    //替换1
                strCmd2 = strCmd2.Replace("20090129", curDateOneYearBefore.ToString("yyyyMMdd"));   //替换2
                Scmd.CommandText =  strCmd2;
                reader = Scmd.ExecuteReader();
                dt = new DataTable(curDate.ToString("yyyyMMdd"));
                dt.Load(reader);
                MyFunctions.DataTable2CSV(dt, @"E:\长江证券实习\8月21日\" + dt.TableName + @".csv");
                reader.Close();
            }
            


            生成交易日数组
            //DateTime[] DTs = new DateTime[67];
            //int n = 0;
            //while (reader.Read())
            //{
            //    for (int i = 0; i < reader.FieldCount; i++)
            //    {
            //        DTs[n] = DateTime.ParseExact(reader.GetValue(i).ToString(), "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture);
            //    }
            //    n += 1;
            //}
            //reader.Close();

            //执行查找SQL命令
            //foreach (DateTime curDate in DTs)
            {
                

                //StringBuilder sbcmd2 = new StringBuilder();
                //sbcmd2.Append(File.ReadAllText(@"E:\长江证券实习\底层数据库\SQL命令2.txt", System.Text.Encoding.GetEncoding("GB2312")));
                //sbcmd = new StringBuilder("");
                //sbcmd.Append(MyFunctions.InputCurDate(curDate, curDateOneYearBefore).ToString());
                //string temp = sbcmd2.ToString().Replace("20100101", curDate.ToString("yyyyMMdd"));
                //temp = temp.Replace("20090101", curDateOneYearBefore.ToString("yyyyMMdd"));
                //string temp = sbcmd2.ToString();
                //Console.WriteLine(temp);
                
                //Console.WriteLine("查询操作成功!");
                //Console.WriteLine("受影响的行数:{0}", reader.RecordsAffected);
               
            }

            //FileStream fs = new FileStream(@"E:\长江证券实习\8月21日\Result.csv", System.IO.FileMode.Create, System.IO.FileAccess.Write);
            //StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.Default);
            //StringBuilder data = new StringBuilder();
            //for (int i = 0; i < 67; i++)
            //{
            //    sbcmd = new StringBuilder();
            //    sbcmd.Append(MyFunctions.InputCurDate(DTs[i], DTs[i].AddYears(-1)).ToString());
            //    scmd.CommandText = sbcmd.ToString();
            //    reader = scmd.ExecuteReader();
            //    DataTable dt = new DataTable(DTs[i].ToString("yyyyMMdd"));
            //    dt.Load(reader);

            //    //写出各行数据
            //    for (int k = 0; k < dt.Rows.Count; k++)
            //    {
            //        //清空数据
            //        data.Length = 0;
            //        for (int j = 0; j < dt.Columns.Count; j++)
            //        {
            //            data.Append(dt.Rows[k][j].ToString());
            //            if (j < dt.Columns.Count - 1)
            //            {
            //                data.Append(",");
            //            }
            //        }
            //        sw.WriteLine(data.ToString());
            //    }
            //    reader.Close();
            //}
            //sw.Close();
            //fs.Close();
            //Console.WriteLine("数据已经成功写入!");

           
            Sconn.Dispose();
            Sconn.Close();
            Console.Read();
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值