อยากทราบวิธีอ่าน text file แล้วเอาค่าไปเก็บในลิงค์ลิสต์ค่ะ Asp.net C#
ตามหัวข้อเลยค่ะ คือ อยากทราบวิธีอ่าน text file แล้วเอาค่าไปเก็บในลิงค์ลิสต์ค่ะ ไฟล์ที่อ่านมีลักษณะแบบนี้ค่ะ
Code
* ID First Last Nick Address Sex Birthday Age
* name name name
*--- ----- ---- ---- -------- ------ -------- ---
*
**********************************************************
0101, aaaaa, bbbb, cccc, 00000000, Female, 11/09/21, 37
*
**********************************************************
0102, xxxxx, yyyy, zzzz, 00000000, Female, 07/08/39, 19
*
**********************************************************
0103, iiiii, jjjj, kkkk, 00000000, Female, 12/11/32, 26
ปล. ข้อมูลมั่วเอานะคะ แต่มีหน้าตาแบบนี้แหละค่ะ
ตอนนี้โค้ดที่ทำอยู่เป็นแบบนี้ค่ะ อ่านค่าและเก็บเป็นรูปแบบตารางและเอามาแสดงผลใน Gridview
Code (C#)
DataSet ds = new DataSet();
ds.Tables.Add("Data");
ds.Tables[0].Columns.Add("ID");
ds.Tables[0].Columns.Add("First name");
ds.Tables[0].Columns.Add("Last name");
ds.Tables[0].Columns.Add("Nick name");
ds.Tables[0].Columns.Add("Address");
ds.Tables[0].Columns.Add("Sex");
ds.Tables[0].Columns.Add("Birthday");
ds.Tables[0].Columns.Add("Age");
StreamReader sr = new StreamReader("Data.txt");
string row = sr.ReadLine();
while (row != null)
{
if ((row.Trim().StartsWith("*")) || (row == ""))
{
row = sr.ReadLine();
continue;
}
string[] rvalues = System.Text.RegularExpressions.Regex.Split(row, ", ");
ds.Tables[0].Rows.Add(rvalues);
row = sr.ReadLine();
}
GridView.DataSource = ds;
GridView.DataBind();
แต่ปัญหามีอยู่ว่า ต้องการเอา First name กับ Last name มาเช็ค แล้วแสดงผล แค่ First name , Last name , Birthday และ Age อ่ะค่ะ
ประมาณว่า ให้ผู้ใช้กรอกชื่อ นามสกุล แล้วกดค้นหา
ผลลัพธ์ที่ได้จะเป็น ชื่อ นามสกุล วันเกิด อายุ ของชื่อที่กรอกเข้าไป
แล้วคือไม่รู้วิธีว่าจะเช็คมันยังไง เลยอยากจะให้อ่านแล้วเก็บไว้ในลิงค์ลิสต์แทนอ่ะค่ะ
ใครพอมีวิธีที่จะเช็คค่า(จากโค้ดเดิม) หรือวิธีที่จะอ่านข้อมูลแล้วเก็บในลิงค์ลิสต์รบกวนหน่อยนะคะTag : Web (ASP.NET), C#
Date :
2015-09-17 12:11:03
By :
teennee
View :
1148
Reply :
3
ใช้พวก List ก็ได้ครับ
ตัวอย่าง
Code (C#)
public class PersonalData
{
public string FirstName{ set; get; }
public string LastName { set; get; }
}
List<PersonalData> list = new List<PersonalData>();
while(dtReader.Read())
{
list.Add(New PersonalData { FirstName = dtReader["xxx"], LastName = dtReader["yyyy"]});
}
เอา list ไปใช้ได้เลยครับ จะโยนลงใน DataSource หรือ foreach ก็ได้
Code (C#)
foreach(var item in list)
{
// item.FirstName;
// item.LastName;
}
Date :
2015-09-17 21:43:51
By :
mr.win
ยังไม่ค่อยเข้าใจอ่ะค่ะ ขอโทษทีนะคะ พอดีเป็นมือใหม่ พึ่งหัดทำ แฮร่ ๆๆ
while(dtReader.Read()) <--- ตรงนี้คืออ่านค่าจากไหนอ่ะคะ จาก text file หรือ ตาราง
dtReader["xxx"] <--- คืออะไรอ่ะคะ
ลองทำตามที่พี่บอก โดยแก้จากโค้ดเก่าแล้วมันไม่ได้อ่ะค่ะ
while(sr.Read()) <--- มันเป็นเส้นสีแดงตรง sr.Read()
พอทำแบบนี้
Code (C#)
while (row != null)
{
if ((row.Trim().StartsWith("*")) || (row == ""))
{
row = sr.ReadLine();
continue;
}
string[] rvalues = System.Text.RegularExpressions.Regex.Split(row, ", ");
list.Add(new PersonalData { FirstName = rvalues["xxxx"], LastName = rvalues["yyyy"] });
row = sr.ReadLine();
}
มันเป็นเส้นสีแดงตรง ["xxxx"] กับ ["yyyy"]
เป็นเพราะอะไรอ่ะคะ หรือเพราะหนูเข้าใจผิด แล้วไปทำแบบผิดๆ 5555 ขอรบกวนอีกรอบนะคะ (หรืออาจจะอีกหลายๆรอบ อิอิ)
ประวัติการแก้ไข 2015-09-18 07:45:29
Date :
2015-09-18 07:43:58
By :
teennee
Load balance : Server 05