我们如何从数据库获取带有通用处理程序或jquery的数据集

时间:2012-04-02 17:49:36

标签: javascript jquery asp.net

对于单个值,我很容易工作,或者也是真正的错误状态。 比如从数据库中获取单个值

                    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数据集。

4 个答案:

答案 0 :(得分:0)

你的问题不明确。您的HandlerResetPass究竟返回了什么?如果是对象列表,您应该定义一个具有数据结构的类,例如序列化json,在客户端,jquery可以遍历您的列表,并处理您的数据。

答案 1 :(得分: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
  }
}

答案 2 :(得分:0)

以下是我获取数据集值的一些代码。

首先,您必须为该require数据表创建类对象。 如下所示

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

现在需要为BasicOuputObject定义Structure。此BasicOuputObject的对象 从服务器端发送到客户端。

Public Structure BasicOuputObject
     Dim status As String
     Dim errorMessage As String
     Dim strMessage As String
     Dim obj As Object
End Structure

现在你必须使用以下函数来获取数据。

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;
        }
    }
}

希望这会对你有所帮助。快乐的编码......

答案 3 :(得分: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);
            }
        }
    }

或者在客户端,我们通过此方法获得这两个值。

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

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