c# -将数据库中的数据存储在2列列表中

本文关键字:存储 2列 列表 数据 数据库 | 更新日期: 2023-09-27 18:10:38

    public static List<string>[] ColumnToList2(string table, List<string>[]data, NpgsqlConnection ncon)
    {
        using (ncon)
        {
            NpgsqlDataAdapter da = new NpgsqlDataAdapter("SELECT id, name FROM " + table + "", ncon);
            DataSet ds = new DataSet();
            da.Fill(ds, "" + table + "");
            foreach (DataRow row in ds.Tables["" + table + ""].Rows)
            {
                //Testing area
                //Console.WriteLine(row["id"].ToString());
                //Console.WriteLine(row["name"].ToString());
                data[0].Add(row[0].ToString());
                data[1].Add(row[1].ToString());                    
            }
        }
        return data;
    }

你好!这一次,我想询问从值中搜索id的建议,然后将两列存储在列表数组中。当我测试输入在控制台有什么我想要的,但当尝试看到输入列表后,没有我想要的结果(id name - list)下面是变量的定义:

        List<string>[] data_array = new List<string>[];
        datu_array[0]=new List<string>();
        datu_array[1]=new List<string>();

当我尝试通过控制台查看输出时,有一个错误-我没有定义数组大小

我希望你能帮我解决这个问题,提前谢谢。

c# -将数据库中的数据存储在2列列表中

数组在实例化时需要指定一个大小:

List<string>[] data_array = new List<string>[2];

我假设您实际上想要一个List<string[]>而不是List<string>[]。所以一个列表,每一行一个string[],所有列都是字符串。

你可以使用LINQ:

List<string[]> data = ds.Tables[0].AsEnumerable()
 .Select(row => row.ItemArray
    .Select(col => col.ToString())
    .ToArray())
 .ToList();

但是您为什么不继续使用DataTable呢?它比列表有一些优势,例如您可以通过顺序索引或通过名称访问的列。

根据我对您的问题的理解,我建议您使用字典而不是字符串数组列表。