0

無限スクロールを開発しようとすると、という問題に直面していconnection string is not initializedますが、他のページは同じ接続文字列で正常に動作しています。

私のページを共有して、誰かが私に何が問題なのかを教えてくれるようにします. 経験のある人にとっては、問題を解決するのは簡単だと思います。

App.dataフォルダーにある私のDataClass.cs

 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 に答える