从数据库中读取后返回一个列表
本文关键字:一个 列表 返回 数据库 读取 | 更新日期: 2023-09-27 18:00:04
我正在尝试从数据库中的Names表中检索所有Names。我无法检索数据并将其作为lIst返回。我该怎么做?
public List<SelectListItem> getNames()
{
try
{
using (SqlCommand com = new SqlCommand("SELECT * FROM Names", con))
{
con();
SqlDataReader dr = com.ExecuteReader();
return ?? // How to return the items that was returned
}
}
.......
您可以迭代返回的所有行,如下所示:
var items = new List<SelectListItem>();
while (dr.Read())
{
var valueInColumn1 = dr[1];
var valueInNamedColumn = dr["ColumnName"];
...
items.Add(new SelectListItem { Text = valueInColumn1.ToString(), Value = valueInNamedColumn.ToString());
}
return items;
首先实例化列表以保存项目(也可以将其保留为null,但这取决于调用方的期望),然后通过调用Read()迭代数据读取器,直到它返回false,这意味着没有更多的记录可用。
当数据读取器有记录时,您可以通过调用GetString、GetInt、GetLong等方法之一来获取列,为其提供要获取的列作为参数。
构造要存储在列表中的类型,并将检索到的值添加到其属性中,将新类型添加到列表中。
public List<SelectListItem> getNames()
{
var list = new List<SelectListItem>();
try
{
using (SqlCommand com = new SqlCommand("SELECT * FROM Names", con))
{
con();
SqlDataReader dr = com.ExecuteReader();
while (dr.Read())
{
list.Add(new SelectListItem {
Value = dr.GetString(0), // first column, depends on your table
Text = dr.GetString(1) // second column, depends on your table
});
}
catch(Exception e)
{
Trace.WriteLine(r.Message);
}
return list;
}
请参阅我的代码示例:
public static List<ActionItem> GetAllActions()
{
var actionItems = new List<ActionItem>();
SqlDataReader actionsReader = CatalogDB.GetAllActions();
try
{
while (actionsReader.Read())
{
actionItems.Add(new ActionItem
{
Id = (int)actionsReader["Id"],
Name = actionsReader["Name"] != DBNull.Value ? (string)actionsReader["Name"] : null,
Description = (string)actionsReader["Description"],
CreationDate = (DateTime)actionsReader["CreationDate"]
}
);
}
}
finally
{
actionsReader.Close();
}
return actionItems;
}
有几种不同的方法,但这可能是最直接的方法。
public List<SelectListItem> getNames()
{
var list = new List<SelectedListItem>();
try
{
using (SqlCommand com = new SqlCommand("SELECT * FROM Names", con))
{
con();
SqlDataReader dr = com.ExecuteReader();
while (dr.Read())
{
var item = new SelectedListItem();
item.Value = dr[0];
list.Add(item);
}
}
}
catch(Exception ex)
{
// ...
}
return list;
}