0

当我尝试开发无限滚动时,我遇到了一个名为 的问题connection string is not initialized,但我的其他页面使用相同的连接字符串工作正常。

我将分享我的页面,以便有人可以帮助我告诉我其中有什么问题。我认为有经验的人很容易解决我的问题。

我的 DataClass.cs在 App.data 文件夹中:

 public class DataClass
 {
public DataClass()
{
}
/// <summary>
///  return rows depend on position
///  if you need 10th to 20th you need to pass start=10 and end=20
/// </summary>
/// <param name="start">database start position of one row</param>
/// <param name="next">database end position of one row</param>
/// <returns></returns>
public string GetAjaxContent(int start, int end)
{
    string result = string.Empty;
    //adding sp params with values in Dictionary entry.
    Dictionary<string, object> keyValPair = new Dictionary<string, object>();
    keyValPair.Add("@start", start);
    keyValPair.Add("@next", end);

    DBHelper DBHelper = new DBHelper();
    //passing the Stored Procedure name and keyvalue pair
    DataTable dataTable = DBHelper.GetTable("spuserdata", keyValPair);
    if (dataTable.Rows.Count > 0)
    {
        for (int i = 0; i < dataTable.Rows.Count; i++)
        {
            result += string.Format(@"<tr>
                                                    <td>
                                                        <table>
                                                            <tr>
                                                                <td style='width:50px;'>{0}</td><td style='width:400px;'>{1}</td><td style='width:150px;'>{2}</td>
                                                            </tr>
                                                        </table>
                                                    </td>
                                               </tr>", dataTable.Rows[i][0].ToString(), dataTable.Rows[i][1].ToString(), dataTable.Rows[i][2].ToString());
        }

    }
    //this string is going to append on Datalist on client.
    return result;
}
/// <summary>
/// function to bind data on page load
/// </summary>
/// <returns></returns>
public DataTable FirstTenRecords()
{
    Dictionary<string, object> keyValPair = new Dictionary<string, object>();
    keyValPair.Add("@start", 0);
    keyValPair.Add("@next", 10);

    DBHelper DBHelper = new DBHelper();
    DataTable dataTable = DBHelper.GetTable("spuserdata", keyValPair);
    return dataTable;
 }
  }



    public class Provider
 {
public static SqlConnection GetConnection()
{
    return new SqlConnection(ConfigurationManager.AppSettings["conn"]);
}
  }

    public class DBHelper
  {
public DBHelper()
{


}


public DataTable GetTable(string SPName, Dictionary<string, object> SPParamWithValues)
{
    SqlConnection conn;
    SqlCommand cmd;
    SqlDataAdapter adapter;

    DataTable dataTable = new DataTable();

        conn = Provider.GetConnection();
        //open DB connection
        conn.Open();
        cmd = new SqlCommand();
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Connection = conn;
        cmd.CommandText = SPName;
        foreach (KeyValuePair<string, object> paramValue in SPParamWithValues)
        {
            cmd.Parameters.AddWithValue(paramValue.Key, paramValue.Value);
        }
        adapter = new SqlDataAdapter(cmd);
        adapter.Fill(dataTable);


    return dataTable;
}
 }

  and my handlerr.aspx is
using System;
 using System.Web;

public class Handler : IHttpHandler {

public void ProcessRequest(HttpContext context)
{
    string startQstring = context.Request.QueryString["start"];
    string nextQstring = context.Request.QueryString["next"];
    //null check
    if ((!string.IsNullOrWhiteSpace(startQstring)) &&    (!string.IsNullOrWhiteSpace(nextQstring)))
    {
        //convert string to int
        int start = Convert.ToInt32(startQstring);
        int next = Convert.ToInt32(nextQstring);

        //setting content type
        context.Response.ContentType = "text/plain";
        DataClass data = new DataClass();
        //writing response
        context.Response.Write(data.GetAjaxContent(start, next));
    }
}
public bool IsReusable {
    get {
        return false;
    }
}

}
4

1 回答 1

0

尝试更改SqlConnection(ConfigurationManager.AppSettings["conn"]);SqlConnection(ConfigurationManager.ConnectionStrings["conn"]);.

除此之外,我在您的代码中看不到任何奇怪的东西。请考虑查看评论并提供更多信息。

于 2013-09-30T13:44:15.050 回答