close

前端:

<div>
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<hr />AJAX<hr />
<br /><span class="style2">UpdatePanel</span>「<span class="style1">鴻海股價</span>」<span
class="style2">的時間:</span><asp:Label ID="Label" runat="server"
ForeColor="Blue" Text="Label" style="font-size: x-large"></asp:Label>
<br />
<asp:Label ID="Label2" runat="server" Text="Label" Font-Bold="True"
Font-Size="X-Large" ForeColor="#CC0000"></asp:Label>
<asp:Timer ID="Timer1" runat="server" Interval="300000" OnTick="Page_Load">
</asp:Timer>
<br />
</ContentTemplate>
</asp:UpdatePanel>

<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<br />
<asp:Label ID="Label3" runat="server" Text="Label" Font-Bold="True"
Font-Size="X-Large" ForeColor="#339966"></asp:Label>
<asp:Timer ID="Timer2" runat="server" Interval="1000">
</asp:Timer>
<br />
</ContentTemplate>
</asp:UpdatePanel>

</div>

 

後端

protected void Page_Load(object sender, EventArgs e)
{
string show, Stocktime;

//指定來源網頁
WebClient url = new WebClient();
//將網頁來源資料暫存到記憶體內
MemoryStream ms = new MemoryStream(url.DownloadData("http://tw.stock.yahoo.com/q/q?s=2317"));
//以奇摩股市為例http://tw.stock.yahoo.com
//1101 表示為股票代碼

// 使用預設編碼讀入 HTML
HtmlDocument doc = new HtmlDocument();
doc.Load(ms, Encoding.Default);

// 裝載第一層查詢結果
HtmlDocument hdc = new HtmlDocument();

//XPath 來解讀它 /html[1]/body[1]/center[1]/table[2]/tr[1]/td[1]/table[1]
hdc.LoadHtml(doc.DocumentNode.SelectSingleNode("/html[1]/body[1]/center[1]/table[2]/tr[1]/td[1]/table[1]").InnerHtml);

// 取得個股標頭
HtmlNodeCollection htnode = hdc.DocumentNode.SelectNodes("./tr[1]/th");
// 取得個股數值
string[] txt = hdc.DocumentNode.SelectSingleNode("./tr[2]").InnerText.Trim().Split('\n');

//時間txt[1]
Stocktime = "yahoo網頁時間(每五分鐘更新一次):" + txt[1];
Label.Text = Stocktime;

Label2.Text = "鴻海成交量:" + txt[2];
Label3.Text = "系統時間(每秒更新一次):" + DateTime.Now.ToLongTimeString();

//成交量txt[2]
//show = "鴻海成交量:"+txt[2].Trim().Replace("加到投資組合", "");
//Label2.Text = show;


SqlConnection Conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["SchoolConnectionString"].ConnectionString.ToString());
DataSet ds = new DataSet();

SqlDataAdapter u_Adapter = new SqlDataAdapter();
u_Adapter.SelectCommand = new SqlCommand("Select * from Stock", Conn);
u_Adapter.Fill(ds, "Stock"); //---- 這時候執行SQL指令。取出資料,放進 DataSet。

DataRow new_row = ds.Tables["Stock"].NewRow();
//-- 手動新增一行 DataRow
new_row["Time"] = Label.Text;
new_row["Price"] = Label2.Text;

ds.Tables["Stock"].Rows.Add(new_row); //--將新增的一行 DataRow加入 DataSet裡面


//==事先寫好 InsertCommand =============================(start)
u_Adapter.InsertCommand = new SqlCommand("INSERT INTO [Stock] ([Time], [Price]) VALUES (@Time,@Price)", Conn);
//-- InsertCommand 參數 --(start)

u_Adapter.InsertCommand.Parameters.AddWithValue("@Time", Label.Text);
u_Adapter.InsertCommand.Parameters.AddWithValue("@Price", Label2.Text);

u_Adapter.Update(ds, "Stock");
//---- 這時候執行SQL指令。把 DataSet裡面的新資料,回寫到資料庫!
//---- 因為DataSet的狀態已經被改變,多了新的一列DataRow,所以會自動執行 InsertCommand

//清除資料
doc = null;
hdc = null;
url = null;
ms.Close();
}
protected void Timer1_Tick(object sender, System.EventArgs e)
{

}

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 melomelo1988 的頭像
    melomelo1988

    melo 唐

    melomelo1988 發表在 痞客邦 留言(0) 人氣()