【问题标题】:C# SQL data from DataTable to ArrayC# SQL 数据从 DataTable 到 Array
【发布时间】:2017-10-18 16:46:56
【问题描述】:

我有一个程序,登录用户可以上传/下载文件。我想在用户登录时进行查询,并将数据存储在数组中。 这是我的代码:

 string query = "SELECT * FROM Login;";
        var valami = new DataTable();
        var con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\Roland\Desktop\IBCONTROLL\BIZT.MENTÉS\program_1.7\db_connect_ver_1\login.mdf;Integrated Security=True");
        var sda = new SqlDataAdapter(query, con);
        sda.Fill(valami);
        var result = new string[valami.Columns.Count];
        DataRow dr = valami.Rows[1];
        for (var i = 0; i < dr.ItemArray.Length; i++)
        {
            result[i] = dr[i].ToString();
        }
        foreach (var t in result)
        {
            Console.WriteLine(t);
        }

问题是这是一个一维数组,但我需要一个二维数组,稍后将其用作表格。
你能帮我修复这个代码吗?

【问题讨论】:

  • 我真的不知道如何在这种情况下使用 DataTables,使用 2D 数组会更容易
  • 听起来是一个很好的学习机会。
  • 您可以在该答案中看到您的问题的一种解决方案。 stackoverflow.com/questions/8932900/…
  • 非常感谢@Vikhram 我可以以某种方式添加您的评论作为答案吗?
  • 如果您真的更喜欢二维数组,在 C# 中它们使用var result = new string[dt.Columns.Count, dt.Rows.Count]; 声明并通过嵌套循环分配。您也可以使用var result = new string[dt.Columns.Count][]; 并为每一行分配result[i] = dr.ItemArray.Select(item =&gt; item.ToString()).ToArray()

标签: c# sql arrays database datatable


【解决方案1】:

您可以存储DataTable,而不是将其存储为二维数组。它有很多好处。您不仅可以按列名访问数据(您不能在二维数组中执行此操作),而且还可以在DataTable 中获得与您触发的查询相关的所有元数据。请注意,存储此元数据的内存开销很小。

要访问给定的元素,您可以编写 DataTable.Rows[rowNumber][columnNumber]DataTable.Rows[rowNumber][columnName]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-03
    • 1970-01-01
    • 1970-01-01
    • 2013-06-02
    • 1970-01-01
    相关资源
    最近更新 更多