Friday, 27 September 2013

Connection string is not intialized

Connection string is not intialized

When I'm trying to develop the infinite scrolling I'm facing the problem
called connection string is not initialized, but my other pages are
working fine with the same connection string.
I'll share my page so that someone could help me telling me what is wrong
in it. I think it is easy to get my problem solved for someone with
experience.
my DataClass.cs which is in App.data folder:
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;
}
}
}

No comments:

Post a Comment