我正在嘗試創建一個如下所示的列表,並使用來自datareader的值更新它。我需要編寫代碼來幫助更新數據讀取器的列表。Datareader和列表
internal IList<FilingDto> LoadStatusDtofromReader(IDataReader reader)
{
IList<FilingDto> filingstatus = new List<FilingDto>();
while (reader !=null && reader.Read())
{
var dto = new FilingDto();
var Year = (Decimal)reader["Year"];
dto = new FilingDto()
{
Controllerid = (Guid)reader["Collectorid"],
Status = DBNull.Value.Equals(reader["Status"]) ? string.Empty : reader["Status"].ToString(),
Year = Convert.ToInt32(Year),
Level = DBNull.Value.Equals(reader["Level"]) ? string.Empty : reader["ServiceLevel"].ToString()
};
filingstatus.Add(dto);
}
return status;
}
從DataReader按順序讀取的代碼如下,但我請與停留在幫我完成這個
DataTable FilingStatus = new DataTable("FilingStatus");
SqlConnection sqlcon = new SqlConnection(ConfigurationManager.ConnectionStrings["Connectionstring"].ConnectionString);
sqlcon.Open();
SqlCommand cmd = new SqlCommand("select Collectorid, Status, Year, Level from dbo.abc", sqlcon);
using (IDataReader dr =
代碼是正確的。但是你應該返回'filingstatus'而不是'地位'。 –
您是否閱讀過Datareader類的文檔和示例? [Msdn文檔](http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.aspx)有示例... –
您正在返回未聲明的變量status。請張貼至少有機會編譯的內容。另外,當你想使用'DataReader'時,爲什麼要聲明'DataTable'?看看['SqlCommand.ExecuteReader'](http://msdn.microsoft.com/en-us/library/9kcbe65k.aspx)。 –