Entity Execute SQL Query : INSERT/UPDATE/DELETE (LINQ, Entity Framework) |
Entity Execute SQL Query : INSERT/UPDATE/DELETE (LINQ, Entity Framework) อีกความสามารถหนึ่งของ Entity Framework หรือ LINQ to Entities คือการ Execute คำสั่ง SQL Statement โดยสามารถใช้ Connection ร่วมกับ Entity ที่กำลังเปิดใช้งานอยู่ สามารถ Execute คำสั่งได้ทุกคำสั่งที่เราใช้งาน ไม่ว่าจะเป็นการ INSERT, UPDATE , DELETE หรือคำสั่งอื่น ๆ ที่ใช้เกี่ยวกับ SQL เช่น EXC เป็นต้น
ก่อนการใช้งานให้ทำการ Import หรือ using ตัว System.Data.SqlClient
โครงสร้างข้อมูลก่อนการ Insert, Update หรือ Delete
Example 1 : การใช้ LINQ to Entities ทำการ Execute SQL Statement ด้วยการ Insert ข้อมูล
Code (C#)
private void frmMain_Load(object sender, EventArgs e)
{
// Create new entities from Entities
using (var db = new myDatabaseEntities())
{
// Insert
string strSQL = string.Empty;
strSQL = "INSERT INTO CUSTOMER ";
strSQL += " (CUSTOMER_ID,NAME,EMAIL,COUNTRY_CODE,BUDGET,USED)";
strSQL += " VALUES";
strSQL += " ('C005','Rut Wisarut','[email protected]'";
strSQL += ",'TH','5000000','0')";
db.Database.ExecuteSqlCommand(strSQL);
}
}
Code (VB.Net)
Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' Create new entities from Entities
Using db = New myDatabaseEntities()
' Insert
Dim strSQL As String = String.Empty
strSQL = "INSERT INTO CUSTOMER "
strSQL += " (CUSTOMER_ID,NAME,EMAIL,COUNTRY_CODE,BUDGET,USED)"
strSQL += " VALUES"
strSQL += " ('C005','Rut Wisarut','[email protected]'"
strSQL += ",'TH','5000000','0')"
db.Database.ExecuteSqlCommand(strSQL)
End Using
End Sub
สามารถเขีนแบบ Parameters Query ได้เช่นเดียวกัน
Code (C#)
private void frmMain_Load(object sender, EventArgs e)
{
// Create new entities from Entities
using (var db = new myDatabaseEntities())
{
string strSQL = string.Empty;
strSQL = "INSERT INTO CUSTOMER ";
strSQL += " (CUSTOMER_ID,NAME,EMAIL,COUNTRY_CODE,BUDGET,USED)";
strSQL += " VALUES";
strSQL += " (@CustomerID,@Name,@Email";
strSQL += ",@CountryCode,@Budget,@Used)";
List<SqlParameter> parameterList = new List<SqlParameter>();
parameterList.Add(new SqlParameter("@CustomerID", "C005"));
parameterList.Add(new SqlParameter("@Name", "Rut Wisarut"));
parameterList.Add(new SqlParameter("@Email", "[email protected]"));
parameterList.Add(new SqlParameter("@CountryCode", "TH"));
parameterList.Add(new SqlParameter("@Budget", 5000000));
parameterList.Add(new SqlParameter("@Used", 0));
SqlParameter[] Param = parameterList.ToArray();
int result = db.Database.ExecuteSqlCommand(strSQL, Param);
}
}
Code (VB.Net)
Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' Create new entities from Entities
Using db = New myDatabaseEntities()
Dim strSQL As String = String.Empty
strSQL = "INSERT INTO CUSTOMER "
strSQL += " (CUSTOMER_ID,NAME,EMAIL,COUNTRY_CODE,BUDGET,USED)"
strSQL += " VALUES"
strSQL += " (@CustomerID,@Name,@Email"
strSQL += ",@CountryCode,@Budget,@Used)"
Dim parameterList As New List(Of SqlParameter)
parameterList.Add(New SqlParameter("@CustomerID", "C005"))
parameterList.Add(New SqlParameter("@Name", "Rut Wisarut"))
parameterList.Add(New SqlParameter("@Email", "[email protected]"))
parameterList.Add(New SqlParameter("@CountryCode", "TH"))
parameterList.Add(New SqlParameter("@Budget", 5000000))
parameterList.Add(New SqlParameter("@Used", 0))
Dim Param As SqlParameter() = parameterList.ToArray()
Dim result As Integer = db.Database.ExecuteSqlCommand(strSQL, Param)
End Using
End Sub
Screenshot
การ Add หรือ Insert ข้อมูล
Example 2 : การใช้ LINQ to Entities ทำการ Execute SQL Statement ด้วยการ Update ข้อมูล
Code (C#)
private void frmMain_Load(object sender, EventArgs e)
{
// Create new entities from Entities
using (var db = new myDatabaseEntities())
{
// Update
string strCustomerID = "C005";
decimal iUsed = 100000;
db.Database.ExecuteSqlCommand("UPDATE CUSTOMER SET USED = {0} WHERE CUSTOMER_ID = {1}"
, iUsed, strCustomerID);
}
}
Code (VB.Net)
Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' Create new entities from Entities
Using db = New myDatabaseEntities()
' Update
Dim strCustomerID As String = "C005"
Dim iUsed As Decimal = 100000
db.Database.ExecuteSqlCommand("UPDATE CUSTOMER SET USED = {0} WHERE CUSTOMER_ID = {1}", _
iUsed, strCustomerID)
End Using
End Sub
Screenshot
การ Update ข้อมูล
Example 3 : การใช้ LINQ to Entities ทำการ Execute SQL Statement ด้วยการ Delete ข้อมูล
Code (C#)
private void frmMain_Load(object sender, EventArgs e)
{
// Create new entities from Entities
using (var db = new myDatabaseEntities())
{
// Delete
string strCustomerID = "C005";
db.Database.ExecuteSqlCommand("DELETE FROM CUSTOMER WHERE CUSTOMER_ID = {0}"
, strCustomerID);
}
}
Code (VB.Net)
Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' Create new entities from Entities
Using db = New myDatabaseEntities()
' Delete
Dim strCustomerID As String = "C005"
db.Database.ExecuteSqlCommand("DELETE FROM CUSTOMER WHERE CUSTOMER_ID = {0}", _
strCustomerID)
End Using
End Sub
Screenshot
การ Delete ข้อมูล
เพิ่มเติม!! ในการเขียน Entity Framework ถ้าจะจะให้โปรแกรมทำงานอย่างมีประสิทธิภาพสูงสุด หรือ ความเป็นระบบของ Application ไม่แนะนำให้เรียน SQL Statement ร่วมกับ Entity แต่จะในกรณีที่จะใช้แนะนำให้ให้เป็น View หรือ Stored Procedure แทน เพราะไปน ๆ ก็จะเขียน Entity Framework ด้วย LINQ to Entities แล้ว ทำไมยังจะต้องไปเขียนร่วมกับ SQL มันจะทำให้โปรแกรมที่เราออกแบบนั้น ผิด Concept การ ออกแบบ Design Pattern ไว้ตั้งแต่แรก
|
ช่วยกันสนับสนุนรักษาเว็บไซต์ความรู้แห่งนี้ไว้ด้วยการสนับสนุน Source Code 2.0 ของทีมงานไทยครีเอท
|
|
|
By : |
ThaiCreate.Com Team (บทความเป็นลิขสิทธิ์ของเว็บไทยครีเอทห้ามนำเผยแพร่ ณ เว็บไซต์อื่น ๆ) |
|
Score Rating : |
|
|
|
Create/Update Date : |
2015-10-02 21:18:57 /
2017-03-24 23:03:54 |
|
Download : |
No files |
|
Sponsored Links / Related |
|
|
|
|
|