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
附加到字符串的數字會生成字符串。 –