У меня проблема с DataGridView.
Во-первых, как видите:
я переношу информацию из массива DataGridView
в массив Info_Goods
. Я его внимательно проверил, он полностью передал всю нужную мне информацию.
Но когда я использую foreach
для записи информации массива Info_Goods
в text.txt
, записывается только информация первой строки. Я создал другой массив, имя testArray
с некоторыми элементами, созданными до
пример:
string[,] testArray = {{a,b,c}, {d,e,f}};
Он полностью записал информацию из testArray. Я не знаю, что случилось.
string Name = "";
Name = tb_Name.Text;
string[,] Info_Goods = new string[50, 50];
int Number = 1;
for (int i = 0; i < dgv_Input.Rows.Count - 1; i++)
{
for (int j = 0; j < dgv_Input.Columns.Count - 1; j++)
{
Info_Goods[i, j] = dgv_Input.Rows[i].Cells[j].Value.ToString();
}
}
////================================ Write File
// string[,] test = { { "a", "b", "c" }, { "d", "e", "f" } }; // it worked
using (System.IO.StreamWriter sw = new System.IO.StreamWriter(Number.ToString() + " " + Name + ".txt"))
{
foreach (string s in Info_Goods) // it didn't worked
{
sw.WriteLine(s);
}
}
Во-вторых, я хочу проверить пустые элементы в DataGridView и показать уведомление об ошибке.
Как видите, я использую такой же цикл, как и при передаче информации из DataGridView в массив Info_Goods
.
Я использовал 1 проверочную переменную (1: пустые элементы и 0: не пустые). это не сработало
Но когда я написал только оператор IF (без использования циклов), он сработал.
int check = 0;
for (int a = 0; a < dgv_Input.Rows.Count - 1; a++)
{
for (int b = 0; b < dgv_Input.Columns.Count - 1; b++)
{
if (string.IsNullOrEmpty(dgv_Input.Rows[a].Cells[b].Value as string)) // it didn't work
{
check = 1;
}
}
}
// if (string.IsNullOrEmpty(dgv_Input.Rows[0].Cells[0].Value as string)) // it worked