写库问题

cairongyu02064 2011-10-08 12:40:02
我从网上看到一个股票信息的类库


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Qianfa.net.DataServices;
using Qianfa.net.Library.Entity;
using System.Net;
using Qianfa.net.Library;



namespace Qianfa.net.Library.Entity
{
/*http://hq.sinajs.cn/list=sh600066 sh上海 sz深圳
* 0:”大秦铁路”,股票名字;
1:”27.55″,今日开盘价;
2:”27.25″,昨日收盘价;
3:”26.91″,当前价格;//时间结束后也就是收盘价了
4:”27.55″,今日最高价;
5:”26.20″,今日最低价;
6:”26.91″,竞买价,即“买一”报价;
7:”26.92″,竞卖价,即“卖一”报价;
8:”22114263″,成交的股票数,由于股票交易以一百股为基本单位,所以在使用时,通常把该值除以一百;
9:”589824680″,成交金额,单位为“元”,为了一目了然,通常以“万元”为成交金额的单位,所以通常把该值除以一万;
10:”4695″,“买一”申请4695股,即47手;
11:”26.91″,“买一”报价;
12:”57590″,“买二”
13:”26.90″,“买二”
14:”14700″,“买三”
15:”26.89″,“买三”
16:”14300″,“买四”
17:”26.88″,“买四”
18:”15100″,“买五”
19:”26.87″,“买五”
20:”3100″,“卖一”申报3100股,即31手;
21:”26.92″,“卖一”报价
(22, 23), (24, 25), (26,27), (28, 29)分别为“卖二”至“卖四的情况”
30:”2008-01-11″,日期;
31:”15:05:32″,时间;
*/
public class StockInfo
{
public string Name
{
get;
set;
}

public decimal TodayOpen
{
get;
set;
}

public decimal YesterdayClose
{
get;
set;
}

public decimal Current
{
get;
set;
}

public decimal High
{
get;
set;
}

public decimal Low
{ get; set; }

/// <summary>
/// 竟买价 买1
/// </summary>
public decimal Buy
{ get; set; }

/// <summary>
/// 竟卖价 卖1
/// </summary>
public decimal Sell { get; set; }

/// <summary>
/// 成交数 单位股数 通常除于100成为手
/// </summary>
public int VolAmount { get; set; }

/// <summary>
/// 成交多少钱,单位元
/// </summary>
public decimal VolMoney { get; set; }

/// <summary>
/// 新浪是可以看到5个,5档看盘 ,买1-买5
/// </summary>
public List<GoodsInfo> BuyList { get; set; }

/// <summary>
/// 卖1-卖5
/// </summary>
public List<GoodsInfo> SellList { get; set; }

/// <summary>
/// Date and Time
/// </summary>
public DateTime Time { get; set; }

public override string ToString()
{
return Name + ": " + VolAmount + ":" + Current;
}

}


}



namespace Qianfa.net.Library
{

///股票数据获取接口,你可以自己实现新浪yahoo...
public interface IDataService
{
StockInfo GetCurrent(string stockCode);
}
}

namespace Qianfa.net.DataServices
{
public class Sina : IDataService
{

private const string dataurl = "http://hq.sinajs.cn/list=%7B0}";
#region IStockInfo Members
WebClient client;
private StockInfo PrevInfo;
public StockInfo GetCurrent(string stockCode)
{
try
{
if (client == null)
{
client = new WebClient();
}
if (stockCode.Substring(0, 2) == "60")//上海是600打头
{
stockCode = "sh" + stockCode;
}
else if(stockCode.Substring(0,2)=="00")//深圳
{
stockCode = "sz" + stockCode;
}
else if (stockCode.Substring(0, 2) == "51")//上海基金
{
stockCode = "sh" + stockCode;
}
string url = string.Format(dataurl, stockCode);
string data = client.DownloadString(string.Format(url, stockCode));
PrevInfo = Parse(data);
return PrevInfo;
}
catch
{
return PrevInfo;
}

}

/// <summary>
/// Parse Sina data to stock Info
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static StockInfo Parse(string content)
{
// var hq_str_sh600066 = "宇通客车,9.27,9.35,9.76,9.80,9.27,9.77,9.78,4567858,44306952,3100,9.77,1200,9.76,20500,9.75,1400,9.74,15300,9.73,10030,9.78,28093,9.79,156827,9.80,2800,9.81,6400,9.82,2009-01-09,15:03:32";
int start = content.IndexOf('"')+1;
int end = content.IndexOf('"',start);
string input = content.Substring(start, end - start);
string[] temp = input.Split(',');
if (temp.Length != 32)
{
return null;
}
StockInfo info = new StockInfo();
info.Name = temp[0];
info.TodayOpen = decimal.Parse(temp[1]);
info.YesterdayClose = decimal.Parse(temp[2]);
info.Current = decimal.Parse(temp[3]);
info.High = decimal.Parse(temp[4]);
info.Low = decimal.Parse(temp[5]);
info.Buy = decimal.Parse(temp[6]);
info.Sell = decimal.Parse(temp[7]);
info.VolAmount = int.Parse(temp[8]);
info.VolMoney = decimal.Parse(temp[9]);
info.BuyList = new List<GoodsInfo>(5);
int index = 10;
for (int i = 0; i < 5; i++)
{
GoodsInfo goods = new GoodsInfo();
goods.State = GoodsState.Buy;
goods.Amount = int.Parse(temp[index]);
index++;
goods.Price = decimal.Parse(temp[index]);
index++;
info.BuyList.Add(goods);
}
info.SellList = new List<GoodsInfo>(5);

for (int i = 0; i < 5; i++)
{
GoodsInfo goods = new GoodsInfo();
goods.State = GoodsState.Sell;
goods.Amount = int.Parse(temp[index]);
index++;
goods.Price = decimal.Parse(temp[index]);
index++;
info.SellList.Add(goods);
}
info.Time = DateTime.Parse(temp[30] + " " + temp[31]);
return info;

}

#endregion
}
public class GoodsInfo
{
public int Amount
{ get; set; }
public decimal Price
{
get;
set;
}
public GoodsState State { get; set; }
}


public enum GoodsState
{
Buy,
Sell,
}

}

我想把上面类库中读取的数据写入数据库中,表已建好,符合上面sina股票的结构.请问我该怎么弄?

本人不才,是新手
呵呵,我比较笨
请各位大大说明白点啊
或者给点代码也可以
万分感谢!
...全文
144 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdl2005lyx 2011-10-09
  • 打赏
  • 举报
回复
网上这方面的例子确实很多,百度、google都能搜到,自己动动手。。。
cairongyu02064 2011-10-09
  • 打赏
  • 举报
回复
俩函数,说错。。。。。。
cairongyu02064 2011-10-09
  • 打赏
  • 举报
回复
Parse(string content)和GetCurrent(string stockCode),参数我该怎么处理
sdl2005lyx 2011-10-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 cairongyu02064 的回复:]

大哥啊,我主要是Sina类中的两个方法不会调用,参数不会处理。。。。。。
[/Quote]

哪两个方法?
cairongyu02064 2011-10-09
  • 打赏
  • 举报
回复
大哥啊,我主要是Sina类中的两个方法不会调用,参数不会处理。。。。。。
卧_槽 2011-10-08
  • 打赏
  • 举报
回复
新手先去看书。
cairongyu02064 2011-10-08
  • 打赏
  • 举报
回复
楼上的说了等于没说......
sjfbtnmcn 2011-10-08
  • 打赏
  • 举报
回复
什么库?access?sql?oracle?
反正都得用 SQL 语句,Insert 往里面插入吧.

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧