Hi all,
Can any one help me what is wrong in my code?
It says expects @id which was not supplied. Actually, I wrote a simple procedure like this
ALTER proc [dbo].[spuserdata]
@id int
AS
select decription,url from tb_userdata inner join tb_userlogin on tb_userdata.uidfromtb1=tb_userlogin.id
where tb_userlogin.id=@id
I thought it was fine. What is wrong with my procedure? Can you please help me?
I'm getting current user id using this
string id = System.Web.HttpContext.Current.Session.SessionID;
Thanks and Regards
public class DataClass
{
public DataClass()
{
}
public string GetAjaxContent(int start, int end)
{
string result = string.Empty;
Dictionary<string, object> keyValPair = new Dictionary<string, object>();
keyValPair.Add("@start", start);
keyValPair.Add("@next", end);
DBHelper DBHelper = new DBHelper();
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());
}
}
return result;
}
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(System.Configuration.ConfigurationManager.ConnectionStrings["conn"].ConnectionString);
}
}
public class DBHelper
{
public DBHelper()
{
}
public DataTable GetTable(string spuserdata, Dictionary<string, object> SPParamWithValues)
{
string id = System.Web.HttpContext.Current.Session.SessionID;
SqlConnection conn = new SqlConnection();
SqlCommand cmd = new SqlCommand("con");
SqlDataAdapter adapter = new SqlDataAdapter();
cmd.Connection = conn;
DataTable table = new DataTable();
using (var con = Provider.GetConnection())
{
using (var comd = new SqlCommand(spuserdata, con))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@id", id);
foreach (var keyValue in SPParamWithValues)
{
cmd.Parameters.Add(keyValue.Key, SqlDbType.Int).Value = keyValue.Value;
}
using (var da = new SqlDataAdapter(comd))
{
da.Fill(table);
}
}
return table;
}
}
}
Thanks and Regards