Ajax调用存储过程简单实例

       ajax基于javascript ,就是通过网页脚本向服务器发送异步的请求,改变同步请求的不便

       同步请求 一个请求必须等待到服务器的响应 然后整个页面刷新

       异步请求 则不需要等待服务器的响应 因此页面可以实现局部刷新

       这样的好处是提供了更好的用户体验,仅供初学者学习。

页面代码如下:

ExpandedBlockStart.gif 代码
< script type = " text/javascript " >
        var xmlHttp;
        function createXMLHttpRequest()
        {
            
if (window.ActiveXObject)
            {
                xmlHttp 
=   new  ActiveXObject( " Microsoft.XMLHTTP " );
            }
            
else   if (window.XMLHttpRequest)
            {
                xmlHttp 
=   new  XMLHttpRequest();
            }
        }
        function addNumber()
        {
            createXMLHttpRequest();
            var url
=   " Handler.ashx " ;
            xmlHttp.open(
" GET " ,url, true );
            xmlHttp.onreadystatechange
= showResult;
            xmlHttp.send(
null );
        }
        function showResult()
        {  
        
// alert(xmlHttp.status) ;
             if (xmlHttp.readyState == 4 )
            {
                
if (xmlHttp.status == 200 )
                {
                    document.getElementById(
" result " ).innerHTML = xmlHttp.responseText;
                }
            }
        }
    
</ script >
</ head >
< body >
    
< form id = " form2 "  runat = " server " >
    
< div style = " text-align: center " >
        
< div id = " result " ></ div >
        
</ div >
        
< input id = " btnGetData "  type = " button "  value = " Ajax 获取存储过程数据 "   onclick = " addNumber(); " />
    
</ form >
</ body >
</ html >

 

 

非常简单的存储过程实例  如下:

ExpandedBlockStart.gif 存储过程代码
create  procedure GetDataSam(
@number 
int  
)
as  
begin   
declare @str nvarchar(
200 );
set    @str = ' select top  ' + cast(@number   as   nvarchar) +   ' title  from  zhq_in_content    order by  createdate   desc ' ;
exec(@str);
end

 

 

一般处理文件Handler.ashx;代码如下

 

ExpandedBlockStart.gif 一般处理文件代码
<% @ WebHandler Language = " C# "  Class = " Handler "   %>

using  System;
using  System.Web;

using  System.Data;
using  System.Data.SqlClient;

using  System.Text;

public   class  Handler : IHttpHandler
{

    
public   void  ProcessRequest(HttpContext context)
    {
        context.Response.ContentType 
=   " text/plain " ;
        StringBuilder sb 
=   new  StringBuilder();
        
int  num  =   10 ;
        DataSet ds 
=  GetDataSetFromDB(num);
        
if (ds != null   && ds.Tables[ 0 ].Rows.Count > 0 ){
            
for  ( int  i  =   0 ; i  <  ds.Tables[ 0 ].Rows.Count ;i ++ )
            {
               
if (sb.ToString() == "" ){
                   sb.Append(ds.Tables[
0 ].Rows[i][ " title " ].ToString());
               }
               
else
               {
                   sb.Append(
" <br/> " ).Append(ds.Tables[ 0 ].Rows[i][ " title " ].ToString());
               }
            }
        }
        context.Response.Write(sb.ToString());
    }

    
public   bool  IsReusable
    {
        
get
        {
            
return   false ;
        }
    }
    
public  DataSet GetDataSetFromDB( int  num) {
        SqlConnection conn 
=   new  SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings[ " foretech " ].ToString());
        
try
        {
            conn.Open();
            
// string sql = "select top 10 title from   zhq_in_content order  by   createdate  desc;";
            
//  SqlCommand comm = new SqlCommand("select top 10 title from   zhq_in_content order  by   createdate  desc;",conn);
            SqlDataAdapter da  =   new  SqlDataAdapter( " GetDataSam " , conn);
            da.SelectCommand.CommandType 
=  CommandType.StoredProcedure;
            SqlParameter para 
=   new  SqlParameter( " @number " ,num);
            para.Direction 
=  ParameterDirection.Input;
            da.SelectCommand.Parameters.Add(para);
            DataSet ds 
=   new  DataSet();
            da.Fill(ds);
            
if  (ds  !=   null   &&  ds.Tables[ 0 ].Rows.Count  >   0 )
            {
                
return  ds;

            }
            
else
            {
                
return   null ;
            }
        }
        
finally
        {
            conn.Close();
        }
    }
}

 

 

     仅供初学者学习,说不定去其他公司笔试的时候有用,用SQLHelper怕初学者看不懂,这个简单易懂。

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值