我正在尝试将一个数据集从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/

10-13 04:19