ComboBox.Items[i] - C#

Узнай цену своей работы

Формулировка задачи:

Задача банальна до отупения но программируя уже 24й час завис. Хелп. Необходимо значениями comboBox заполнить массив arr.
            NpgsqlConnection conn23 = new NpgsqlConnection(Conection_string);
            conn23.Open();
            string SQL1 = "SELECT DISTINCT nominal_size FROM tryba where tryba."+kolonka+"='"+comboBox3.Text+"' ;";
            NpgsqlDataAdapter da11 = new NpgsqlDataAdapter(SQL1, conn23);
            DataSet ds11 = new DataSet();
            da11.Fill(ds11);
            comboBox4.DataSource = ds11.Tables[0];
            comboBox4.DisplayMember = "nominal_size";
            conn23.Close();
 
            for (int i = 0; i <=comboBox4.Items.Count; i++)
            {
                arr[i] = (double)comboBox4.Items[i];
            }
Далее заполняем комбобокс пересчитанными значениями
             comboBox4.Items.Clear();
            for (int i = 0; i <= arr.Length; i++)
            {
                comboBox4.Items.Add(Convert.ToString((double)arr[i] * 10));
            }
но возникает проблема при выполнении
arr[i] = (double)comboBox4.Items[i];
Specified cast is not valid. Проверил запрос работает отлично, и комбобокс тоже заполняется. Проблема с превращением в массив Помогите пожалуйста!!!

Решение задачи: «ComboBox.Items[i]»

textual
Листинг программы
using System;
using System.Data;
using System.Windows.Forms;
using System.Data.SqlClient;
 
namespace тестовое_приложение_1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
 
        }
        public const string ConnectionString = "Data Source=.\\.....;Initial Catalog=....;Async=true;Integrated Security=false;Pooling=true;User ID=....;Password=....";
        private async void button1_Click(object sender, EventArgs e)
        {
            SqlConnection sc = new SqlConnection(ConnectionString);
 
            await sc.OpenAsync();
            SqlTransaction st = sc.BeginTransaction(IsolationLevel.Serializable);
            
            const string query = "SELECT [....], [FIELD] FROM [.....] WHERE [FIELD]<100;";
            SqlCommand cmd=new SqlCommand(query,sc,st);
            cmd.CommandTimeout = 0;
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            DataSet ds = new DataSet();
            da.Fill(ds);
            comboBox1.DataSource = ds.Tables[0];
            comboBox1.DisplayMember = "FIELD";
            da.Dispose();
            st.Commit();
            sc.Close();
            
            double[] mas = new double[comboBox1.Items.Count];
            
            
            for (int i = 0; i < comboBox1.Items.Count; i++)
            {
                
                 object o=(comboBox1.Items[i] as DataRowView)["FIELD"];
                 if (o == DBNull.Value)
                     mas[i] = 0;
                 else mas[i] = Convert.ToDouble(o);                
            }
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.25 из 5
Похожие ответы