Зацикливание столбца изображения в GridView C # WinForms |Хранимая процедура - PullRequest
0 голосов
/ 23 сентября 2019

введите описание изображения здесь

Успешно показано визуализированное изображение в виде сетки.Однако каждый раз, когда я загружаю его или вызываю функцию void для обновления вида сетки, всегда выдается ошибка.

В настоящее время я использую таймер, который запускается каждую 1 секунду и вызывает void fx для gridview.

Надеюсь, вы можете помочь мне в этом.

void FillDataGridView_Main()
    {
        if (sqlCon.State == ConnectionState.Closed)
            sqlCon.Open();
        SqlDataAdapter sqlDA = new SqlDataAdapter("[sp_selectTop10CycleTime]", sqlCon);
        sqlDA.SelectCommand.CommandType = CommandType.StoredProcedure;
        sqlDA.SelectCommand.Parameters.AddWithValue("@date", DateTime.Now.ToShortDateString());
        DataTable dataTbl = new DataTable();
        sqlDA.Fill(dataTbl);
        dgvNextCycleTime.DataSource = dataTbl;
        sqlCon.Close();

        int ImagePathIndex = 0; // assuming that the image path  column is 0 (See in your case) 
        dgvNextCycleTime.Columns[ImagePathIndex].Visible = false; // Make visibility for the path = false

        DataGridViewImageColumn ImageColumn = new DataGridViewImageColumn();
        ImageColumn.HeaderText = "Image";
        ImageColumn.Name = "ImageName";
        ImageColumn.ImageLayout = DataGridViewImageCellLayout.Normal;
        ImageColumn.Image = null;
        dgvNextCycleTime.Columns.Insert(1, ImageColumn); // Add the new colunm to the grid 

        //Add the image to the new column in the grid
        foreach (DataGridViewRow row in dgvNextCycleTime.Rows)
        {
            Image img = Image.FromFile(row.Cells[ImagePathIndex].Value.ToString());
            DataGridViewImageCell cell = row.Cells["ImageName"] as DataGridViewImageCell;
            cell.Value = img;
        }
    }
...