خواندن اطلاعات یک سلول DataGridView سی شارپ #C

خواندن اطلاعات از ردیف یک دیتاگرید در سی شارپ

روش اول

برای خواندن اطلاعات از ردیف یک دیتاگرید ویو می توانید از قطعه کد های متفاوتی استفاده کنید .

قطعه کد زیر نشان می دهد که چگونه اطلاعات یک سلول انتخاب شده در دیتاگرید ویو را بدست بیاورید

پلتفرم بوی اجرا شدن خروجی صحیح قطعه کد زیر را تایید می کند

قطعه کدی که در زیر مشاهده می کنید توسط برنامه کامپایلر به جهت تست آزمایش شده و خروجی صحیح بدست آمده است .

int selectedrowindex = dgw_se.SelectedCells[0].RowIndex;
DataGridViewRow selectedRow = dgw_se.Rows[selectedrowindex];
string last_se = Convert.ToString(selectedRow.Cells["id"].Value);

همین قطعه کد را در حالی استفاده کتید که برنامه تشخیص بدهد داده ای داخل دیتاگرید ویو وجود دارد یا خیر ؟

این قطعه کد از قطعه کد بالا کاملتر است :

if (dgw_se.SelectedCells.Count > 0)
{
    int selectedrowindex = dgw_se.SelectedCells[0].RowIndex;
    DataGridViewRow selectedRow = dgw_se.Rows[selectedrowindex];
    string last_se = Convert.ToString(selectedRow.Cells["id"].Value);
}
else
{
    MessageBox.Show("لیست شما اطلاعاتی ندارد", "لیست خالی است", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign);
}

روش دوم

اگر بخواهید ، می توانید از نام ستون به جای شماره ستون نیز استفاده کنید.

به عنوان مثال ، اگر می خواهید داده های DataGridView را در سطر ۴٫ و ستون با “نام” بخوانید. می توانید از یک متغییر برای دریافت مقدار استفاده کنید .

string[,] myGridData = new string[dataGridView1.Rows.Count,3];

int i = 0;

foreach(DataRow row in dataGridView1.Rows)

{

    myGridData[i][0] = row.Cells[0].Value.ToString();
    myGridData[i][1] = row.Cells[1].Value.ToString();
    myGridData[i][2] = row.Cells[2].Value.ToString();

    i++;
}

روش سوم

همچنین شما می توانید از یک foreach برای تکرار DataGridViewRows در DataGridView و از نام ستون ها برای بازیابی مقادیر سلول استفاده کنید .

foreach (DataGridViewRow dr in dataGridView.Rows)
{
    string col1 = dr.Cells["Col1"].Value.ToString();
    string col2 = dr.Cells["Col2"].Value.ToString();
    string col3 = dr.Cells["Col3"].Value.ToString();
}

روش چهارم

ممکن است NullException برای جلوگیری از این خطا رخ دهد ، می توانید کد فوق را به صورت زیر تغییر دهید . این کد جلوی بسیاری از خطاهای احتمالی در هنگام اجرا یا خواندن اطلاعات را می گیرد .

foreach (DataGridViewRow dr in dataGridView1.Rows)
{
    //variables with looop through
    string col1 = Convert.ToString(dr.Cells["col1"].Value);
    string col2 = Convert.ToString(dr.Cells["col2"].Value);
    string col3 = Convert.ToString(dr.Cells["col3"].Value);
}

روش پنجم

با استفاده از خصوصیات مربوطه: SelectedCells، SelectedRows و SelectedColumns می توانید سلول ها ، ردیف ها یا ستون های انتخاب شده را از کنترل DataGridView دریافت کنید. در روش های زیر ، سلول های انتخاب شده را دریافت می کنید و نمایه های سطر و ستون آنها را در یک MessageBox نمایش می دهید.

پلتفرم بوی اجرا شدن خروجی صحیح قطعه کد زیر را تایید می کند

قطعه کدی که در زیر مشاهده می کنید توسط برنامه کامپایلر به جهت تست آزمایش شده و خروجی صحیح بدست آمده است .

private void selectedCellsButton_Click(object sender, System.EventArgs e)
{
    Int32 selectedCellCount =
        dataGridView1.GetCellCount(DataGridViewElementStates.Selected);
    if (selectedCellCount > 0)
    {
        if (dataGridView1.AreAllCellsSelected(true))
        {
            MessageBox.Show("All cells are selected", "Selected Cells");
        }
        else
        {
            System.Text.StringBuilder sb =
                new System.Text.StringBuilder();

            for (int i = 0;
                i < selectedCellCount; i++)
            {
                sb.Append("Row: ");
                sb.Append(dataGridView1.SelectedCells[i].RowIndex
                    .ToString());
                sb.Append(", Column: ");
                sb.Append(dataGridView1.SelectedCells[i].ColumnIndex
                    .ToString());
                sb.Append(Environment.NewLine);
            }

            sb.Append("Total: " + selectedCellCount.ToString());
            MessageBox.Show(sb.ToString(), "Selected Cells");
        }
    }
}

 

 

آیا این نوشته برای شما مفید بود ؟

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *