我正在尝试将一个数据集从SQL Server获取到一个列表中,以便可以在页面上显示该数据集。我在这里诚实地看到了很多答案,每一次不同的尝试都会给我带来不同的错误。
据我所知,这应该管用。ScriptList
是一个List
并且应该具有Add
功能。但是,它根本没有。这是我目前的代码:
public ScriptList Index()
{
var scriptList = new ScriptList();
//List<ScriptItem> scriptlst = new List<ScriptItem>();
string connectionString = _configuration["ConnectionString:localhost"];
using (SqlConnection connection = new SqlConnection(connectionString))
{
string statement = "SELECT ScriptGUID, ScriptName, ScriptDescription, DateAdded FROM dbo.Scropts;";
SqlCommand command = new SqlCommand(statement, connection);
connection.Open();
using (SqlDataReader reader = command.ExecuteReader())
{
while(reader.Read())
{
scriptList.Add<ScriptItem>(new ScriptItem{GUID = Convert.ToString(reader["ScriptGUID"]),
Name = Convert.ToString(reader["ScriptName"]),
ShortDescription = Convert.ToString(reader["ScriptDescription"]),
DateAdded = Convert.ToDateTime(reader["DateAdded"])});
}
}
}
return scriptList;
}
}
public class ScriptList
{
public List<ScriptItem> ScriptItems {get;set;}
}
public class ScriptItem
{
public string GUID {get;set;}
public string Name {get;set;}
public string ShortDescription {get;set;}
public DateTime DateAdded {get;set;}
}
这给了我以下错误:
“scriptlist”不包含“add”的定义和最佳扩展方法重载“configurationextensions.add(iconfigurationbuilder,action)”需要“iconfigurationbuilder”类型的接收器
我试图将
ScriptList
的定义更改为List<ScriptItem> scriptlist = new List<ScriptItem>();
,但这会导致以下错误:无法将类型“system.collections.generic.list”隐式转换为“asp.pages.scriptlist”
我真的不明白这里怎么了。为什么
scriptList
没有Add
功能,为什么scriptlist
还没有,尽管它们都声明为List<ScriptItem>
而不是(显然)相同? 最佳答案
不,您创建了一个具有List<T>
成员的类。这并不意味着你的类继承了来自该成员的所有成员。
您只需查找scriptList.ScriptItems.Add()
,请注意添加的ScriptItems
。这是你的名单,不是你的班级。
关于c# - 为什么我的List对象不包含“添加”的定义?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58287911/