【发布时间】:2015-09-28 05:47:55
【问题描述】:
我正在尝试使用 ADO 在实体之间建立关系。
public class Banner
{
public int IdBanner { get; set; }
public string NameBanner { get; set; }
public string Media { get; set; }
public Country Country{ get; set; }
}
public class Country
{
public int IdCountry { get; set; }
public string NameCountry { get; set; }
}
在我的另一个类(DAL)中,我有一个方法,这个方法需要在 Country Class 中插入一个属性,就像我的例子:
public List<Banner> Listar()
{
List<Banner> lista = new List<Banner>();
using (SqlConnection conn = ConnectionDAL.GetConnection())
{
String sql = "BannerListar";
using (SqlCommand command = new SqlCommand(sql, conn))
{
command.CommandType = CommandType.StoredProcedure;
try
{
conn.Open();
SqlDataReader dr = command.ExecuteReader();
while (dr.Read())
{
Banner obj = new Banner();
if (dr["IdBanner"] != DBNull.Value)
obj.IdBanner = Convert.ToInt32(dr["IdBanner"]);
if (dr["NameBanner"] != DBNull.Value)
obj.NameBanner = dr["NameBanner"].ToString();
if (dr["Media"] != DBNull.Value)
obj.Media = dr["Media"].ToString();
//HERE the problem
if (dr["NameCountry"] != DBNull.Value)
obj.Country.NameCountry = dr["NameCountry"].ToString();
lista.Add(obj);
}
}
catch
{
throw;
}
finally
{
conn.Close();
conn.Dispose();
}
return lista;
}
}
}
当我这样做时,会向我显示这样的错误:“使用 'new' 关键字来创建对象实例” 我该如何解决?
【问题讨论】:
-
在哪一行出现错误?
-
这里: if (dr["NameCountry"] != DBNull.Value) obj.Country.NameCountry = dr["NameCountry"].ToString();
-
出现错误时。错误主要是因为你试图创建一些没有新关键字的类的实例。
-
你能发布完整的堆栈跟踪吗?您是否从存储过程中获取所有值??
-
在程序中返回给我“NameCountry”。我需要把新的关键字,但我不知道在哪里! ://
标签: c# asp.net .net model ado.net