none
Как получить номер строки в DataTable по условию RRS feed

  • Вопрос

  • Здравствуйте. Необходима помощь.

    Вывожу данные в datagridview из DataSet ds.Tables["all"]. При выделении одной из ячеек datagridview я получаю номер строки, после чего помещаю значение этой ячейки в переменную string n1. Открываю дочернюю форму Form2, передаю переменную n1.

    dataGridView1.DataSource = ds.Tables["all"];
    int currentRow = int.Parse(e.RowIndex.ToString());
    string n1 = dataGridView1[2, currentRow].Value.ToString();
    Form2 form = new Form2();
    form.n1 = n1;
    form.ShowDialog();
    


    В доченей форме заполняю comboBox1 данными из DataSet spr.Tables["s"]. DataSet имеет два столбца "s" и "value"

    DataSet spr = GetData();
    comboBox1.DataSource = spr.Tables["s"];
    comboBox1.DisplayMember = "s";
    comboBox1.ValueMember = "value";
    
    


    Теперь мне нужно выделить строку в comboBox1 в текущей форме (Form2):

    comboBox1.SelectedIndex = "номер строки"

     

    Теперь вопрос. Как получить номер строки из DataSet spr, в которой значение ячейки в столбце value == n1. Значения в столбце value уникльны.

    На крайний случай я использую:

     int n = dt.Rows.Count;
    
       for (int i = 0; i < n; i++)
    
       {
    
        if (n1 == dt.Rows[i][1].ToString())
    
        crow = i;
    
       }
    
    

    Необходимо решение только без использования циклов.



    16 августа 2011 г. 10:50

Ответы

  • > получить номер строки в DataTable по условию

    DataTable.Rows.Find

    • Помечено в качестве ответа Abolmasov Dmitry 7 сентября 2011 г. 8:44
    16 августа 2011 г. 13:04
  • Спасибо за подсказку. Что бы использовать в дальнейшем хотелось бы узнать все ли правильно?

    DataTable dt = spr.Tables["s"];
    dt.PrimaryKey = new DataColumn[] {dt.Columns["value"]};
    DataRow dr = dt.Rows.Find(n1);
    int rowIndex = dt.Rows.IndexOf(dr);
    

    • Предложено в качестве ответа Malobukv 16 августа 2011 г. 19:50
    • Помечено в качестве ответа Malobukv 24 августа 2011 г. 16:35
    16 августа 2011 г. 16:49

Все ответы