2013-09-27 104 views
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; 
    } 
} 

} 
+0

这是'ConfigurationManager.AppSettings [“conn”]'具体问题吗? – Esteban

+0

对不起,先生,我没有得到你,可以请你清楚解释我 – user2772861

+0

@ user2772861你说它可以在其他页面中使用。你能展示一些有效的代码,所以我们可以发现它们的区别吗? –

回答

0

试着改变SqlConnection(ConfigurationManager.AppSettings["conn"]);SqlConnection(ConfigurationManager.ConnectionStrings["conn"]);

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