2014-02-04 3 views
0

Я занят программой задач, а затем я столкнулся с проблемой!Выполнять значения массива в запросе C#

Вот мой код:

int id = 1; 
List<Button> _bListGroups = new List<Button>(); 
MySqlCommand mcCommandUserID = new MySqlCommand("SELECT * FROM pakket WHERE [email protected]", _msConnection); 
mcCommandUserID.Parameters.AddWithValue("@id", id); 
MySqlDataReader msReader = mcCommandUserID.ExecuteReader(); 
DataTable dtGetUserid = new DataTable(); 
dtGetUserid.Load(msReader); 

string[] nummer = new string[10]; 

int i = 0; 
foreach (DataRow row in dtGetUserid.Rows) 
{ 
    nummer[i] = row["groepsid"].ToString(); 
    i++; 
} 

MySqlCommand msCommandGetGroup = new MySqlCommand("SELECT * FROM groep WHERE [email protected]",_msConnection); 
msCommandGetGroup.Parameters.AddWithValue("@id", nummer[i]); 
MySqlDataReader msGetGroup = msCommandGetGroup.ExecuteReader(); 
DataTable dtGetGroup = new DataTable(); 
dtGetGroup.Load(msGetGroup); 

int mtop = 10; 
int mleft = 15; 
int count = 1; 
foreach (DataRow dr in dtGetGroup.Rows) 
{ 
    Button temp = new Button(); 
    temp.Name = "bt" + dr["id"]; 
    temp.Text = (string)dr["groepsnaam"]; 
    temp.Width = 125; 
    temp.Height = 125; 
    temp.Left = mleft; 
    temp.Top = mtop; 

    mleft += 127; 

    if (count == 2) 
    { 
     mtop += 125; 
     mleft = 15; 
     count = 0; 
    } 
    count++; 
    _bListGroups.Add(temp); 

} 
return _bListGroups.ToArray(); 

Когда я даю мой массив определенное число (например, Nummer [1]), я получаю одну кнопку назад, но если я использую переменную я, она не дает мне любые кнопки. Я уже пытался отладить его, но я не мог его решить.

ответ

0

Обратите внимание, что в конце каждой итерации вы увеличиваете i. Так, в конце концов i больше, чем последний присвоенный индекс на 1. Поэтому вам нужно i-1:

msCommandGetGroup.Parameters.AddWithValue("@id", nummer[i-1]); 

Кроме того, вы можете иметь некоторые prechecks здесь крайние случаи, когда говорят, что нет ни одной строки в dtGetUserid.Rows.

0

Вы не смогли сбросить счетчик.

переменного я на этом этапе:

msCommandGetGroup.Parameters.AddWithValue("@id", nummer[i]); 

набора для индекса массива, который вы гавань выделяемого при любых значениях.