|
|
|
ใช้ String.Format ค้นหาจาก TextBox สามารถเพิ่มเงื่อนไขได้ไหมครับ |
|
|
|
|
|
|
|
โลกโปรแกรมมิ่งเปลี่ยนไปและเดินไปข้างหน้าตลอดเวลา
แต่ใจคนไม่เปลี่ยนแปลงและยังเหมือนเดิม อยู่กัมพูชาหันหลังกลับไปมอง
เออยังดีว่ะยังอยู่รัฐยะไข่
Dynamic SQL Query น่าจะตอบใจทย์ได้ทุกยุคทุกสมัย
ยุคห้าจีมันไม่ใช่ยุคห้าศูนย์
ปล. หน้าจอแบบนี้ผมเกาหำเล่นยังยากเสียยิ่งกว่า
|
|
|
|
|
Date :
2019-03-29 19:48:14 |
By :
หน้าฮี |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จากข้อสงสัยของคุณและอีกคนหนึ่ง ณ. ที่นี้ (เขียน PHP และจะอัพขึ้น .NET Core โดยไม่ได้ใช้ EF)
จากข้อสงสัยนั้นผมแนะนำว่า ใช้ Dapper
จากข้อสงสัยของคุณผมใช้ Update แทนข้อสงสัยนั้น (หลักการเดียวกัน)
ตัวอย่างการเรียกใช้งาน
Code (C#)
clsMyFilter.Update("yourTable", new { PK1 = 1, PK2=2 }, new { Value1 = "Update1", Value2="Update2" });
Code (C#)
public static class clsMyFilter
{
private static string CommaSeparated(IEnumerable<string> list) => string.Join(",", list);
private static string SeparatedByAndStatement(IEnumerable<string> list) => string.Join(" AND ", list);
public static async Task Update(this IDbConnection con, string tableName, object identityParameters, object parametersObject)
{
IEnumerable<PropertyInfo> propertyInfo = parametersObject.GetType().GetProperties();
IEnumerable<PropertyInfo> identityPropertyInfo = identityParameters.GetType().GetProperties();
IEnumerable<string> columnsEqualToParameter = propertyInfo.Select(p => $"[{p.Name}] = @{p.Name}");
IEnumerable<string> identityColumnsEqualToParameter = identityPropertyInfo.Select(p => $"[{p.Name}] = @{p.Name}");
string sql = new StringBuilder()
.Append("UPDATE " + tableName + " SET ")
.Append(CommaSeparated(columnsEqualToParameter))
.Append($" WHERE ")
.Append(SeparatedByAndStatement(identityColumnsEqualToParameter))
.Append(";")
.ToString();
IDictionary<string, object> allParameters = new ExpandoObject();
foreach (PropertyInfo info in propertyInfo)
allParameters.Add(info.Name, parametersObject.GetType().GetProperty(info.Name).GetValue(parametersObject));
foreach (PropertyInfo info in identityPropertyInfo)
allParameters.Add(info.Name, identityParameters.GetType().GetProperty(info.Name).GetValue(identityParameters));
await con.ExecuteAsync(sql, allParameters);
}
}
|
|
|
|
|
Date :
2019-03-30 08:52:21 |
By :
หน้าฮี |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จาก #NO4
PK1, PK2 มันก็คือชื่อฟิวด์ (Field บนดาด้าเบสนั่นแหละ) อทิเช่น ProductID, ProductCode เป็นต้น
Value1, Value2 มันก็คือชื่อฟิวด์ (Field บนดาด้าเบสนั่นแหละ) อทิเช่น ProductName, ProductType เป็นต้น
เรียกง่ายฯว่า การแมพปิ้ง(ตรูจับปิ้งเอง) ระหว่าง App <---> EF (Entity Framework)
จากรูปภาพด้านล่าง ผมจำเป็นต้องไล่โปรแกรมเมอร์ออกอีกหลายคน
(อยู่ไปก็หายใจทิ้งไปวันวัน)
|
|
|
|
|
Date :
2019-03-30 09:03:59 |
By :
หน้าฮี |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|