 |
|
จากคำสั่งผมอยากทราบว่า เราสามารถ where 3 ตัวได้ไหมครับ ผม where 2 ตัวรันออก รบกวนขอคำแนะนำหน่อยครับ |
|
 |
|
|
 |
 |
|
ได้ครับ
|
 |
 |
 |
 |
Date :
2018-12-14 15:22:34 |
By :
sent |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
แล้วมีปัญหาการทดสอบยังไงเหรอครับ โค๊ดแบบนี้ มันน่าจะทดสอบด้วยตัวเองได้ ไม่ต้องมาถาม ให้เสียเวลา
|
 |
 |
 |
 |
Date :
2018-12-14 16:03:15 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อ้อ งั้นปัญหาอยู่ที่ main code (c#) แล้วครับ เขียนไว้แบบไหน
|
 |
 |
 |
 |
Date :
2018-12-15 09:59:51 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตอบความคิดเห็นที่ : 5 เขียนโดย : Chaidhanan เมื่อวันที่ 2018-12-15 09:59:51
รายละเอียดของการตอบ ::
ขอบคุณครับได้แล้วครับ
Code (C#)
using (SqlConnection sqlcon = new SqlConnection(connectiondb))
{
sqlcon.Open();
SqlDataAdapter sqlda = new SqlDataAdapter("SELECT c.CaseKey, c.CaseCode, ct.Name, c.CaseName, c.CaseDetail, c.CaseDT, c.Requester, u.DeptName, u.Tel, cs.Name AS Expr1, ic.StaffName, ic.DateHope, ic.Solve, ic.Dates, ic.ExpectedDT FROM [Case] AS c LEFT OUTER JOIN CaseType AS ct ON c.CaseTypeKey = ct.CaseTypeKey LEFT JOIN Usr AS u ON c.UsrKey = u.UsrKey LEFT JOIN CaseStatus AS cs ON c.CaseStatusKey = cs.CaseStatusKey LEFT OUTER JOIN ItCase AS ic ON c.CaseKey = ic.CaseKey Where u.UsrKey like '%'+'" + DropDownList2.Text.Trim() + "'+'%' and ic.StaffName like '%'+'" + DropDownList3.Text.Trim()+ "'+'%' and cs.Code like '%'+'" + DropDownList1.Text.Trim() + "'+'%' and c.CaseDT BETWEEN '" + TextBox2.Text + "' AND '" + TextBox3.Text + "' ", sqlcon);
DataTable aaa = new DataTable();
sqlda.Fill(aaa);
GridView1.DataSource = aaa;
GridView1.DataBind();
}
|
 |
 |
 |
 |
Date :
2018-12-15 10:34:08 |
By :
wiraphon |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Where u.UsrKey like '%'+'" + DropDownList2.Text.Trim() + "'+'%'
แก้เป็น
Where u.UsrKey like '%" + DropDownList2.Text.Trim() + "%'
หรือ
Where u.UsrKey like concat('%','" + DropDownList2.Text.Trim() + "','%')
ผมไม่แน่ใจว่า mssql server เวอร์ชั่นไหน เลยนิยมที่ต่อ string ด้วยคำสั่ง concat แม้จะต่าง type ก็ไม่ error
ตัวอย่างโค๊ด c#
Code (C#)
string _strSql = "SELECT c.CaseKey, c.CaseCode, ct.Name, c.CaseName, c.CaseDetail, c.CaseDT, c.Requester, u.DeptName"
+ ", u.Tel, cs.Name AS Expr1, ic.StaffName, ic.DateHope, ic.Solve, ic.Dates, ic.ExpectedDT "
+ "FROM [Case] AS c "
+ "LEFT OUTER JOIN CaseType AS ct ON c.CaseTypeKey = ct.CaseTypeKey "
+ "LEFT JOIN Usr AS u ON c.UsrKey = u.UsrKey "
+ "LEFT JOIN CaseStatus AS cs ON c.CaseStatusKey = cs.CaseStatusKey "
+ "LEFT OUTER JOIN ItCase AS ic ON c.CaseKey = ic.CaseKey "
+ "Where u.UsrKey like '%" + DropDownList2.Text.Trim() + "%' "
+ "and ic.StaffName like '%" + DropDownList3.Text.Trim()+ "%' "
+ "and cs.Code like '%" + DropDownList1.Text.Trim() + "%' "
+ "and c.CaseDT BETWEEN '" + TextBox2.Text + "' AND '" + TextBox3.Text + "' ", sqlcon);
DataTable _dt;
using (SqlConnection sqlcon = new SqlConnection(connectiondb))
{
sqlcon.Open();
SqlCommand _cmd = sqlcon.CreateCommand();
_cmd.CommandText = _strSql;
SqlDataAdapter _da = new SqlDataAdapter(_cmd);
DataSet _ds = new DataSet();
_da.Fill(_ds, "Case");
sqlcon.Close();
_dt = _ds.Tables["Case"];
}
GridView1.DataSource = _dt;
//GridView1.DataBind(); // ตรงนี้ไม่เคยใช้
ปล.ไม่ได้ทดสอบ
|
 |
 |
 |
 |
Date :
2018-12-15 12:02:32 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|