ช่วยดูหน่อยโค้ดหน่อยครับ จะเปลี่ยนจาก ADO.NET เป็น LINQ ครับ
ผมสร้าง asp.net ติดต่อกับ LINQ แล้วจะให้แสดงข้อมูลโดย กดที่ชื่อ แล้วเรียกไปที่ไอดี แต่มันออกมา 2 ชื่อครับ ต้องออกมาชื่อเดียว ต้องแก้ไขยังครับ ผมใช้ ADO.NET ทำได้แล้วครับ แต่จำเป็นต้องใช้ LINQ ครับ
รูปภาพ LINQ
โค้ด LINQ (C#)
string CurrentRID = "";
dbIrdbaseDataContext db = new dbIrdbaseDataContext();
protected void Page_Load(object sender, EventArgs e)
{
CurrentRID = Request.QueryString["ID_Researcher"];
if (CurrentRID == null)
{
Response.Redirect("About.aspx");
}
else
{
if (CurrentRID == "")
{
Response.Redirect("About.aspx");
}
else
{
var ree = from r in db.Researchers
where r.ID_Researcher == r.ID_Researcher //ผมสงสัยว่าเกี่ยวกับตรงนี้ครับ ต้องนำไปเปรียบเทียบกับ CurrentRID ยังไงครับ
select new
{
PrefixName = r.PrefixName,
ResearcherN = r.ResearcherN,
IDCard = r.IDcard
};
StringBuilder sb = new StringBuilder();
sb.Remove(0, sb.Length);
foreach (var r in ree)
{
sb.Append("คำนำหน้า : " + r.PrefixName + "<br/>");
sb.Append("ชื่อ-นามสกุล : " + r.ResearcherN + "<br/>");
sb.Append("หมายเลขบัตรประชาชน : " + r.IDCard + "<br/>");
}
var str = sb.ToString();
Response.Write(str);
โค้ด ADO.NET ใช้ได้ปกติครับ
Code (C#)
string CurrentRID = "";
dbIrdbaseDataContext db = new dbIrdbaseDataContext();
protected void Page_Load(object sender, EventArgs e)
{
CurrentRID = Request.QueryString["ID_Researcher"];
if (CurrentRID == null)
{
Response.Redirect("About.aspx");
}
else
{
if (CurrentRID == "")
{
Response.Redirect("About.aspx");
}
else
{
string strConn;
strConn = WebConfigurationManager.ConnectionStrings["IrdbaseConnectionString"].ConnectionString;
SqlConnection Conn = new SqlConnection(strConn);
Conn.Open();
StringBuilder sb = new StringBuilder();
sb.Append("SELECT ID_Researcher,PrefixName,ResearcherN,IDcard");
sb.Append(" FROM Researcher");
sb.Append(" WHERE ID_Researcher=@ID_Researcher");
var sqlResearcher = sb.ToString();
SqlCommand com = new SqlCommand();
com.Connection = Conn;
com.Parameters.Clear();
com.Parameters.Add("ID_Researcher", SqlDbType.Int).Value = CurrentRID; //เปรียบเทียบ CurrentRID
com.CommandType = CommandType.Text;
com.CommandText = sqlResearcher;
var dr = com.ExecuteReader();
if (dr.HasRows)
{
dr.Read();
var PrefixName = dr.GetString(dr.GetOrdinal("PrefixName"));
var ResearcherN = dr.GetString(dr.GetOrdinal("ResearcherN" ));
var IDcard = dr.GetString(dr.GetOrdinal("IDcard" ));
dr.Close();
Response.Write("<asp:Content id='BodyContent'> คำนำหน้า : " + PrefixName + "<br/>");
Response.Write("ชื่อ-นามสกุล : " + ResearcherN + "<br/>");
Response.Write("หมายเลขบัตรประชาชน : " + IDcard + "<br/>");
Response.Write("</asp:Content>");
}
dr.Close();
จำเป็นต้องใช้ LINQ ช่วยชี้แนะหน่อยนะครับ ขอบคุณTag : .NET, Web (ASP.NET), LINQ, C#
ประวัติการแก้ไข 2012-10-31 16:05:28
Date :
2012-10-31 16:01:14
By :
ERO-TIC
View :
1122
Reply :
4
CurrentRID ใช่ค่าที่รับมาจากการกดชื่อหรือป่าวครับ
ถ้าใช่ ก็น่าจะแก้เป็นแบบนี้ครับ
Code (C#)
var ree = from r in db.Researchers
where r.ID_Researcher == CurrentRID
select new
{
PrefixName = r.PrefixName,
ResearcherN = r.ResearcherN,
IDCard = r.IDcard
};
ลองดูนะครับ ถ้าผิดพลาด ขออภัยครับ
Date :
2012-11-01 00:15:32
By :
Niratiam
ใช่ครับ CurrentRID คือค่าที่รับมาจากการกด Where r.ID_Researcher == CurrentRID ลองแล้วไม่ได้ครับ
Date :
2012-11-01 08:19:37
By :
ERO-TIC
ลอง debug ดูว่าค่า CurrentRID มีค่าหรือป่าว ยังครับ
ถ้ามีแล้ว ลองเปลี่ยนเป็นแบบนี้ดูอีกทีครับ
Where r.ID_Researcher.Equals.(CurrentRID.Trim())
ลองดูนะครับ
Date :
2012-11-01 08:34:05
By :
Niratiam
Load balance : Server 00