none
Как данные типа Double записать в массив? С# RRS feed

  • Вопрос

  • Очень нужна помощь. у меня есть бд Access с таблицей(поля которой типа Double ), мне нужно, например, столбец "mineralization" записать в массив типа Double. как это можно реализовать?

    р.s. если можно, скиньте пример кода


    8 июня 2017 г. 20:22

Ответы

  • Зачем вы усложняете. Вот так будет проще:

    oledbAdapter.Fill(ds);
    if (ds != null)
    {
        double[] mass = new double[ds.Tables[0].Rows.Count];
        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
        {
            mass[i] = double.Parse(ds.Tables[0].Rows[i]["mineralization"].ToString());
        }
    }

    9 июня 2017 г. 12:27
    Отвечающий

Все ответы

  • Добрый день.

    Вот здесь посмотрите пример выборки данных из Access. Там они выводятся на консоль, вам эти данные надо добавить, например, в List. Или сначала определить количество строк, создать массив, а вторым проходом его просто заполнить. Если что-то не будет получаться, скиньте код, подскажем что поправить.

    Отвечающий
  • Вот, что у меня получилось. Но выдает ошибку 
     private void classBtn_Click(object sender, EventArgs e)
            {
    
               OleDbDataAdapter oledbAdapter = new OleDbDataAdapter("SELECT mineralization FROM  wateranalys", con);
                try
                {
                    con.Open();
                   oledbAdapter.Fill(ds);
                    if (ds != null)
                    {
                       double[] mass = new double[ds.R];
                        for (int i=0; i<=dataGridView1.RowCount - 1; i++)
                        {
                            mass[i] = double.Parse(dataGridView1.RowCount[i]["mineralization"].ToString());
                        }                    
                    }
                    con.Close();
                }
                catch(Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }        
                }

    ошибка: заданное приведение является недопустимым 
    9 июня 2017 г. 10:57
  • Зачем вы усложняете. Вот так будет проще:

    oledbAdapter.Fill(ds);
    if (ds != null)
    {
        double[] mass = new double[ds.Tables[0].Rows.Count];
        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
        {
            mass[i] = double.Parse(ds.Tables[0].Rows[i]["mineralization"].ToString());
        }
    }

    9 июня 2017 г. 12:27
    Отвечающий
  • Спасибо огромное, работает
    9 июня 2017 г. 16:17