C#ASP.NET - 方法'Add'没有重载需要1个参数

时间:2014-08-07 13:22:30

标签: c# asp.net

我在下面有这个函数,我正在尝试做的是连接到数据库,运行查询并将结果放在List中,然后返回列表。这就是我到目前为止所提出的,

 public class AirportClass
    {
        private string connectionString;
        private SqlConnection connection;
        private SqlCommand command;
        private Dictionary<string, List<string>> items;

        public AirportClass()
        {
            connectionString = @"Server=server;database=database;uid=username;pwd=password;";
        }

        public Dictionary<string, List<string>> getListItems()
        {
            items = new Dictionary<string, List<string>>();
            connection = new SqlConnection(connectionString);
            command = new SqlCommand("SELECT * FROM Table");
            command.Connection = connection;
            connection.Open();
            SqlDataReader dataReader = command.ExecuteReader();
            while (dataReader.Read())
            {
                string data = dataReader[0].ToString();
                items.Add(data);
            }
            connection.Close();
            return items;
        }
    }

我已经运行了调试器,我可以看到我正在获取连接并且数据正在返回,我只是在将项目放入列表时遇到问题。我添加items.Add(data)时出现错误,说“方法”没有重载“添加”需要1个参数....有人可以帮助我吗?

3 个答案:

答案 0 :(得分:2)

因为items不是List<T>,它是Dictionary 如果要添加到词典,则需要提供key(第一个参数)和value(第二个参数)

由于您的value字典类型为List<String>,因此第二个参数必须为List<string>

的内容
items.Add(dataReader[0].ToString(), dataReader.ToList().convertAll(itm => itm.toString()));

答案 1 :(得分:2)

使用列表而不是词典:

 public class AirportClass
    {
        private string connectionString;
        private SqlConnection connection;
        private SqlCommand command;
        private List<string> items;

        public AirportClass()
        {
            connectionString = @"Server=server;database=database;uid=username;pwd=password;";
        }

        public List<string> getListItems()
        {
            items = new List<string>();
            connection = new SqlConnection(connectionString);
            command = new SqlCommand("SELECT * FROM Table");
            command.Connection = connection;
            connection.Open();
            SqlDataReader dataReader = command.ExecuteReader();
            while (dataReader.Read())
            {
                string data = dataReader.GetValue(0).ToString();
                items.Add(data);
            }
            connection.Close();
            return items;
        }
    }

答案 2 :(得分:1)

您需要为字典提供密钥和值。