ฉันมีปัญหากับ 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
array
ฉันใช้ตัวแปรตรวจสอบ 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