如何使用C#从数据库读取数组字段?

zan*_*ana 6 c# arrays postgresql npgsql

我正在使用 C# 和 postgresql。在数据库中,我有一个名为的表,在该表中我有一个名为其数据类型的test列,并且我存储了多个这样的记录。现在,如何将这些记录返回到 C# 程序中并存储在列表中arrdouble[]{1, 1, 2, 3, 0, 5, 1, 4}List<double[]> arr1 = new List<double[]>();

谁能帮我?

Ham*_*one 6

对于数组数据类型,您所要做的就是将结果转换为 double 数组:

NpgsqlConnection conn = new NpgsqlConnection(connectionString);
conn.Open();

NpgsqlCommand cmd = new NpgsqlCommand("select arr from test", conn);
NpgsqlDataReader reader = cmd.ExecuteReader();

while (reader.Read())
{
    double[] myArray = (double[])reader.GetValue(0);
    // do your bidding
}

reader.Close();
Run Code Online (Sandbox Code Playgroud)

-- 编辑 2021 年 2 月 18 日 --

从 Npgsql 5.0 开始,上述方法似乎在大多数情况下都有效,但文档指定了一种不同的方法来提取数组数据类型:

double[] myArray = reader.GetFieldValue<double[]>(0)
Run Code Online (Sandbox Code Playgroud)


Vur*_*ral 0

以下是在 C# (.NET) 中使用 PostgreSQL 的演练:在 C# (.NET) 中使用 PostgreSQL

您需要向我们提供您遇到的一些具体问题,以便我们帮助解决问题。