【问题标题】:How to insert into Matrix from Database如何从数据库中插入矩阵
【发布时间】:2026-02-16 18:20:03
【问题描述】:

我想从一个包含两列的数据库(零售)创建一个矩阵

CustomerID    Itemset
    1            1
    1            2
    1            4
    2            1
    2            5
    3            2
    3            4
    4            1
    5            2

这是我在 VB 中想要的输出——CustomerID 是列,Itemset 是行。 '1' 如果客户购买了 Itemset,否则为 '0'

      1   2   3   4   5  (CustomerID)
  1   1   1   0   1   0
  2   1   0   0   0   1
  3   0   1   0   1   0
  4   1   0   0   0   0
  5   0   1   0   0   0

这是我构建的代码,但并不多。如何循环 SQL 查询?还是这完全是代码错误?

  Dim noofitems_row As Integer
    Dim noofCustomerID_col As Integer

    objConnection.Open()

    ObjCommand.CommandText = "select Max(Itemset) from Retail "
    noofitems_row = ObjCommand.ExecuteScalar()

    ObjCommand.CommandText = " select Max(customerID) from Retail"
    noofCustomerID_col = ObjCommand.ExecuteScalar()

    objConnection.Close()
    Dim matrix As Integer(,)
    matrix = New Integer(noofitems_row - 1, noofCustomerID_col - 1) {}


    For i = 0 To noofitems_row - 1
        For j = 0 To noofCustomerID_col - 1
            matrix(i, j) = >WHAT DO I CODE HERE?
        Next
    Next
End Sub

在此先感谢您。如果对问题有任何疑问,我将根据需要多次回复。

【问题讨论】:

  • 我想你会想要一个二维数组,然后在循环时使用你的变量 i 和 j 作为二维数组索引的变量。 IE。数组[i,j] = sqlResults [i,j]
  • 好的,我将使用二维数组,但是如何将值从 DB 插入到矩阵中?
  • @JeffOrris 你能指导我学习一个好的二维数组 VB 教程吗?
  • youtube.com/results?search_query=2-d+array+vb 抱歉,我会帮你一点,但是我正忙于工作试图回家,现在是凌晨 1 点 50 分。该链接是一堆 Youtube 视频可供选择
  • 迭代表的条目并将矩阵中的相应条目设置为1。保持其他条目不变。

标签: sql sql-server vb.net matrix


【解决方案1】:

我的答案在 c# 中,但将其用作算法。

首先,您需要通过以下方式读取数据:

string query = "SELECT * FROM TableName";
string conString = objConnection.ConnectionString;
DataTable dt = new DataTable();
new SqlDataAdapter(query, conString).Fill(dt);

现在您的数据在 DataTabl dt 中。

当你声明一个int的数组时,它的默认值为0,你只需要找到一些地方并将其更新为1

for (int i = 0; i < dt.Rows.Count; i++)
{
    int itemSet = Int32.Parse(dt.Rows[i]["Itemset"].ToString());
    int customerID = Int32.Parse(dt.Rows[i]["CustomerID"].ToString());
    /*Update [itemSet,customerID] and [customerID,itemSet] of array*/
}

【讨论】: