2012-04-02 8 views
1

単一の値の場合と同様に、簡単に処理できます。 簡単に一つの変数に値を示すデータベースデータベースからジェネリックハンドラまたはjqueryでデータセットを取得するにはどうすればいいですか?

    string i = ""; 
        cmd.CommandType = CommandType.StoredProcedure; 
        cmd.CommandText = "SelectPass"; 
        cmd.Parameters.AddWithValue("@userID", context.Request.QueryString["id"]); 
        conn.Open(); 
        SqlDataReader reader = cmd.ExecuteReader(); 
        while (reader.Read()) 
        { 
         i = reader["Password"].ToString(); 
        } 
        reader.Close(); 
        conn.Close(); 
        if (i == "") 
        { context.Response.Write("False"); } 
        else 
        { 
         context.Response.Write(i); 
        } 

から、クライアント側で単一の値を取得するように。

function abc() 
{ 
    $.get('\HandlerResetPass.ashx?id=' + $('#txtUserId').val()+'&lbl='+ $('#lblPasswo').val(), callback); 
    function callback(data) 
    { 

    if (data == "False") 
    { 
    alert('ID doesn\'t exist try again..!') 
    return false; 
    } 
    else 
    { 
    $('#tblPassWord').show(); 
    $('#tblprofile').hide(); 
    role = data; 
    } 
    } 
} 

しかし、どのようにAデータセットで作業しますか。

+0

私はちょうど私がこのIDに対してどのように全体のプロファイルを取得しているか知りたいと思っています。どのようにcontext.Response.Write(datatable);どうやって? – QasimRamzan

+0

あなたはあなたが望む情報を持っていれば、答えをaccpetedとしてマークするのを忘れてしまいます。 –

答えて

0

私たちは、その仕事の王を使用してハンドラからデータセットを返すことができます。

public void ProcessRequest(HttpContext context) 
    { 
     string connect = (@"Connection string"); 

     using (SqlConnection conn = new SqlConnection(connect)) 
     { 
      using (SqlCommand cmd = new SqlCommand("", conn)) 
      { 
       string i = ""; 
       cmd.CommandType = CommandType.StoredProcedure; 
       cmd.CommandText = "Selecttest"; 
       cmd.Parameters.AddWithValue("@_ID", context.Request.QueryString["id"]); 
       conn.Open(); 
       SqlDataAdapter da = new SqlDataAdapter(); 
       da.SelectCommand = cmd; 
       DataSet ds = new DataSet(); 
       da.Fill(ds); 
       conn.Close(); 
       string ans = ""; 
       ans = Convert.ToString(ds.Tables[0].Rows[0]["name"])+","; 
       ans += Convert.ToString(ds.Tables[0].Rows[0]["age"]); 
       context.Response.Write(ans); 
      } 
     } 
    } 

クライアント側では、この方法でこれらの2つの値を取得します。

function abc() 
{ 
$.get('\Handler1.ashx?id=' + $('#txtID').val(), callback); 
function callback(data) 
{ 

    var arr = data.split(','); 
    $("#name").html(arr[0]); 
    $("#age").html(arr[1]); 
} 
} 
0

あなたの質問は不明です。 HandlerResetPassが返すものは何ですか?もしあなたがデータの構造を持つクラスを定義しなければならないオブジェクトのリストがあれば、例えばjsonをシリアライズしてください。クライアント側ではjqueryがあなたのリストを通り、データを処理できます。

+0

私はC#のようなデータセットの応答をどのようにしたいのですか?DataSet ds = new DataSet(); da.Fill(ds); conn.Close(); return ds;しかし、どのようにjqureeの – QasimRamzan

+1

あなたはjqueryにdsを返すことはできません、あなたのリスト、データの配列を返す必要があります。たとえば、Name {FirstName、LastName}を読んでみたい場合は、2つの文字列フィールドを持つNameクラスを作成し、データセットまたはdatareaaderを読み込んでNameのリストを作成し、それをシリアル化する必要があります。あなたはajax呼び出しに戻ります。いくつかのアイデアを得るために.netと$ .ajaxに関するドキュメントを読んでください。 –

0

JSONを返してからjQueryの$.parseJSONを使用してオブジェクトに解析できます。例えば

、ここで

// data = '{"field1": "value1", "field2": false}' 
function callback(data) { 
    dataObj = $.parseJSON(data) 
    if(dataObj["field2"] == false) { 
    // do something 
    } 
    else { 
    // do something else 
    } 
} 
+0

ありがとう、私はこれを試してみてください。 – QasimRamzan

0

は私のデータセットの値を取得するためのコードのいくつかのビットを持っています。

まず、その必要なテーブルデータ用のクラスオブジェクトを作成する必要があります。

Class MyData 
    Public ID As Integer 
    Public Name As String 
    Public ContactNo As String 
End Class 

以下のよう は今、あなたはBasicOuputObjectための構造を定義する必要があります。このBasicOuputObject のオブジェクトは、サーバー側からクライアントに送信されます。

データ機能を使用するには、以下の関数を使用する必要があります。

Public Sub GetMyData() 
    Dim objOutput As New BasicOuputObject 
    Dim objCommand As New SqlCommand 
    Dim lstMyData As New List(Of MyData) 
    Dim objMyData As MyData 
    Dim objConn As New SqlConnection("Pass Connection String") 
    objCommand.CommandText = "select ID ,Name ,ContactNo from Customers" 
    objCommand.Connection = objConn 

    objConn.Open() 
    Dim m_rdrReader As SqlDataReader = objCommand.ExecuteReader() 
    If m_rdrReader.HasRows Then 
     While m_rdrReader.Read() 
      objMyData = New MyData 
      objMyData.ID = m_rdrReader(0) 
      objMyData.Name = m_rdrReader(1) 
      objMyData.ContactNo = m_rdrReader(2) 
      lstMyData.Add(objMyData) 
     End While 
    End If 
    m_rdrReader.Close() 
    m_objConn.Close() 

    objOutput.errorMessage = "" 
    objOutput.obj = lstMyData 
    objOutput.strMessage = "success" 

    Dim objSerialiser As New System.Web.Script.Serialization.JavaScriptSerializer 
    HttpContext.Current.Response.Write(objSerialiser.Serialize(objOutput)) 
    HttpContext.Current.Response.End() 

End Sub 
End Class 

次のようにjavascriptを変更します。ハンドラから関数 を呼び出すために任意のマナニズムを使用することができます。

function abc() { 
    $.get('\HandlerResetPass.ashx?id=' + $('#txtUserId').val() + '&lbl=' +  $('#lblPasswo').val(), callback); 
    function callback(data) { 

     if (data.status == "success") { 

      for (var row, i = 0; row = data.obj[i]; i++) { 
       //Create the row strings using the CreateAddModelRowString function 
       // Process row var for as per usage. 
      } 

     } 
     else { 

      alert('ID doesn\'t exist try again..!') 
      return false; 
     } 
    } 
} 

希望すると、これが役立ちます。幸せなコーディング....

関連する問題