ASP.NET AJAX客户端与数据库交互

来源:互联网 发布:php 打印报表 编辑:程序博客网 时间:2024/05/17 21:49

C# code
using System;using System.Collections;using System.Configuration;using System.Data;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Xml.Linq;using System.Data.SqlClient;using System.Web.Services;using System.Threading;public partial class Default2 : System.Web.UI.Page{ string ConStr = ConfigurationManager.ConnectionStrings["NorthwindConnection"].ConnectionString; protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { BindData(); } } private void BindData() { string Sql = "SELECT TOP 10 * FROM customers"; using (SqlConnection Con = new SqlConnection(ConStr)) { using (SqlCommand Cmd = new SqlCommand(Sql, Con)) { Con.Open(); DataTable dt = new DataTable(); using (SqlDataReader Dr = Cmd.ExecuteReader()) { dt.Load(Dr); gvNorth.DataSource = dt; gvNorth.DataBind(); } } } } [WebMethod] public static string GetData() { Thread.Sleep(10000); //return "this is tommy test"; string ConStrs = ConfigurationManager.ConnectionStrings["NorthwindConnection"].ConnectionString; string Sql = "SELECT TOP 3 CustomerID,CompanyName,ContactName FROM customers "; string Result = string.Empty; using (SqlConnection Con = new SqlConnection(ConStrs)) { using (SqlCommand Cmd = new SqlCommand(Sql, Con)) { Con.Open(); DataTable dt = new DataTable(); using (SqlDataReader Dr = Cmd.ExecuteReader()) { while (Dr.Read()) { Result += Dr[0].ToString() + ";"; } } } } return Result; } // 供前台AJAX调用 [WebMethod] public static DataTable GetDataTable() { Thread.Sleep(10000); string ConStrs = ConfigurationManager.ConnectionStrings["NorthwindConnection"].ConnectionString; string Sql = "SELECT TOP 3 CustomerID,CompanyName,ContactName FROM customers"; DataTable ResultTable = new DataTable(); DataTable OrderTable = new DataTable(); using (SqlConnection Con = new SqlConnection(ConStrs)) { using (SqlCommand Cmd = new SqlCommand(Sql, Con)) { Con.Open(); DataTable dt = new DataTable(); using (SqlDataReader Dr = Cmd.ExecuteReader()) { ResultTable.Load(Dr); } } } return ResultTable; }}

HTML code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Trace="true" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title>Untitled Page</title> <style type="text/css"> .Show { display: block; } .Hiden { display: none; } </style></head><body> <form id="form1" runat="server"> <asp:ScriptManager ID="sm" runat="server" EnablePageMethods="true"> </asp:ScriptManager> <script type="text/javascript"> Sys.Application.add_load(onload); Sys.Application.add_init(); function onload() { PageMethods.GetData(onInvokeSucced); } function onInvokeSucced(result) { if(result != null) { $get("top").className = "Show"; $get("img").className = "Hiden"; $get("top").innerHTML = result.toString(); } else { $get("top").className = "Hiden"; $get("img").className = "Show"; } } </script> <div id="top" class="Hiden"> <asp:Label ID="lblTest" runat="server"></asp:Label> </div> <div id="img" style="margin-left:500px;"> <img src="Img/ajax-loader.gif" alt="waiting" /> </div> <div> <asp:GridView ID="gvNorth" runat="server"> </asp:GridView> </div> </form></body></html>