2015-03-28 6 views
0

Я хочу, чтобы создать матрицу из базы данных (Retail) с двумя колонкамиКак вставить в матрицу из базы данных

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

Это выход я хочу в VB- CustomerID столбцы и строки являются НИКАКИХ гарантий. «1», если НИКАКИХ гарантий покупается клиентом еще «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 

Благодарю вас, заранее. Если есть какие-либо сомнения относительно Вопроса, я буду отвечать столько раз, сколько нужно.

+0

Я думаю, что вы хотите 2-мерный массив, а затем использовать ваши переменные i и j в качестве переменных для 2-мерного индекса массива при циклировании. То есть array [i, j] = sqlResults [i, j] –

+0

Хорошо, я буду использовать 2D-массив, но как мне вставить значения из DB в матрицу? – Api

+0

Я добавил (а) комментарий –

ответ

0

Ответ на мой вопрос в 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*/ 
} 
Смежные вопросы