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>();
当我尝试通过控制台查看输出时,有一个错误-我没有定义数组大小
我希望你能帮我解决这个问题,提前谢谢。
数组在实例化时需要指定一个大小:
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
呢?它比列表有一些优势,例如您可以通过顺序索引或通过名称访问的列。
根据我对您的问题的理解,我建议您使用字典而不是字符串数组列表。