I am new to asp.net and sql server i wrote a code to set my model and i just need a row so i wrote this code:
My model
public class FullPackages
{
public int Id { get; set; }
public int TypeId { get; set; }
[Display(Name = "Package Type")]
public string TypeName { get; set; }
public int AllowedSMS { get; set; }
[Display(Name = "Time Span in Days")]
public int? TimeSpan { get; set; }
public decimal Price { get; set; }
}
My Method
public ActionResult PackageDetails(int id = 0)
{
string sqlString = "select top 1 tblPackages.*, tblPackageTypes.Name from tblPackages join tblPackageTypes on tblPackages.TypeId = tblPackageTypes.Id where tblPackages.Id = "+id;
SqlConnection con = new SqlConnection(cnxn); // cnxn is defined
SqlCommand cmd = new SqlCommand(sqlString, con);
SqlDataReader dsr;
FullPackages package = new FullPackages();
con.Open();
dsr = cmd.ExecuteReader(); // this returns null value
package.Id = dsr.GetInt32(0);
package.TypeId = dsr.GetInt32(1);
package.TypeName = dsr.GetString(5);
package.AllowedSMS = dsr.GetInt32(2);
package.TimeSpan = dsr.IsDBNull(3) ? 0 : dsr.GetInt32(3);
package.Price = dsr.GetDecimal(4);
con.Close();
return View(package);
}
when i remove top 1 from the sqlString it returns the values from the database but when i keep top 1 it returns null.And when i check the same sql with top 1 in sql server Mgmt Studio it returns single row.. Why is it so?? Please help me....
top 1the code works fine.