1
我是新来asp.net和SQL服务器我写了一个代码来设置我的模型,我只需要一排,所以我写了这个代码:SQL Server查询返回null
我的模型
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; }
}
我的方法
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);
}
当我从的SqlString删除top 1
它从数据库返回的值,但是当我保持top 1
它返回null.And当我检查相同的sql与top 1
在sql服务器Mgmt Studio它返回单行..为什么这样?请帮我....
我想这是不工作的代码,因为ID被定义为int,但被附加到SQL选择字符串就好像它是字符串一样。 – NoChance
@EmmadKareem不,它工作正常。我只是将int的值附加到字符串。另外当我删除'顶部1'的代码工作正常。 – Robz
附加到字符串的数字会生成字符串。 –