Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > ขออนุญาติสอบถามเรื่อง Insert into เครื่องหมาย ' single quote ลง ฐานข้อมูล SQL (VB)



 

ขออนุญาติสอบถามเรื่อง Insert into เครื่องหมาย ' single quote ลง ฐานข้อมูล SQL (VB)

 



Topic : 126291



โพสกระทู้ ( 314 )
บทความ ( 0 )



สถานะออฟไลน์




Insert into เครื่องหมาย ' single quote ลง ฐานข้อมูล SQL ไม่ได้อะครับ รบกวนขอแนวทางหน่อยครับ
รูปประกอบครับ

12211



Tag : .NET, Ms SQL Server 2012, Web (ASP.NET), Win (Windows App), VB.NET







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2017-02-07 10:43:19 By : adminliver View : 1742 Reply : 14
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ใช้การ Replace ตัว ' เป็น '' (2 ตัว) ครับ เช่น

Code (VB.NET)
Public Function SQLSafe(ByVal str As String)
  Return str.Replace("'","''")
End Function


เอา SQLSafe ไปครอบตัวแปร






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-02-07 11:27:00 By : mr.win
 


 

No. 2



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

แต่แนะนำให้ใช้แบบ Parameter Query แทนครับ

Code (C#)
		//*** FOR INSERT ***//
		strSQL = "INSERT INTO customer (CustomerID,Name,Email,CountryCode,Budget,Used) " +
		"VALUES (@sCustomerID,@sName,@sEmail,@sCountryCode,@sBudget,@sUsed)";
				
        objCmd = new System.Data.SqlClient.SqlCommand(strSQL,objConn);

		//*** Sample 1 ***//
		/*
        objCmd.Parameters.AddWithValue("@sCustomerID","C005");
        objCmd.Parameters.AddWithValue("@sName","Weerachai Nukitram");
        objCmd.Parameters.AddWithValue("@sEmail","[email protected]");
        objCmd.Parameters.AddWithValue("@sCountryCode","TH");
        objCmd.Parameters.AddWithValue("@sBudget","2000000");
        objCmd.Parameters.AddWithValue("@sUsed","1000000");
		*/

		//*** Sample 2 ***//
		objCmd.Parameters.Add(new SqlParameter("@sCustomerID","C005"));
		objCmd.Parameters.Add(new SqlParameter("@sName","Weerachai Nukitram"));
		objCmd.Parameters.Add(new SqlParameter("@sEmail","[email protected]"));
		objCmd.Parameters.Add(new SqlParameter("@sCountryCode","TH"));
		objCmd.Parameters.Add(new SqlParameter("@sBudget","2000000"));
		objCmd.Parameters.Add(new SqlParameter("@sUsed","1000000"));


        objCmd.ExecuteNonQuery();


(C#) ASP.NET System.Data.SqlClient - Parameter Query (SqlParameter)

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-02-07 11:28:51 By : mr.win
 

 

No. 3



โพสกระทู้ ( 314 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 2 เขียนโดย : mr.win เมื่อวันที่ 2017-02-07 11:28:51
รายละเอียดของการตอบ ::
ขอบคุณครับแอด ผมก็สงสัยว่าระหว่าง insert แบบ '" & &"' กับ ใช้ parameter มันแตกต่างกันอย่างไร แต่ตอนเก็ทเบยย ฮาๆๆ ขอบคุณอีกครั้งครับผม ^_^

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-02-07 12:22:51 By : adminliver
 


 

No. 4



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ใช้แบบ Parameters จะดีและปลอดภัยกว่าเยอะเลยนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-02-07 13:43:38 By : mr.win
 


 

No. 5



โพสกระทู้ ( 314 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 4 เขียนโดย : mr.win เมื่อวันที่ 2017-02-07 13:43:38
รายละเอียดของการตอบ ::
ขออนุญาตสอบถามอีกนิดครับแอด ถ้า insert into แบบ parameter date time picker จะจัดเก็บในรูปแบบ yyyy-MM-dd หรือป่าวครับ ในกรณีที่เครื่อง Client ใช้เป็นปี พ.ศ ผมเลยไม่กล้าใช้ตัว parameter จริงๆอยากใช้มากแต่กลัวเรื่อง Date format อะครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-02-07 22:03:09 By : adminliver
 


 

No. 6



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ถ้าเรื่อง เวลา เหมือนมีคนตอบไปแป๊บๆ

https://www.thaicreate.com/dotnet/forum/126287.html
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-02-08 00:16:25 By : lamaka.tor
 


 

No. 7



โพสกระทู้ ( 821 )
บทความ ( 0 )



สถานะออฟไลน์


ผมใช้แบบ Replace '' เอาครับ
ความเห็นส่วนตัวว่า ใช้แบบ parameter มันลำบาก
เพราะมันต้องพิมพ์เยอะ ถ้าส่งค่าสัก 20 ตัว ก็พิมพ์กันเยอะเลย

และผมก็ไม่เคยจำคำสั่งได้เลย จะพิมพ์ที ก็เปิดหาที T_T


ส่วนเรื่อง พศ คศ ปกติจะสั่งชุดคำสั่งที่ทำให้โปรแกรมเราเป็น คศ ก่อนเสมอครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-02-08 07:49:25 By : fonfire
 


 

No. 8



โพสกระทู้ ( 314 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 6 เขียนโดย : lamaka.tor เมื่อวันที่ 2017-02-08 00:16:25
รายละเอียดของการตอบ ::
Cultrueinfo นิเอง เก็ทเบยครับจาาาารย์

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-02-08 07:59:20 By : adminliver
 


 

No. 9



โพสกระทู้ ( 314 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 7 เขียนโดย : fonfire เมื่อวันที่ 2017-02-08 07:49:25
รายละเอียดของการตอบ ::
ปัญหาเดียวกับผมเลยครับเขียน code ทียาวมากแบบ parameter สมัยเรียน vb ที่มหาลัยอาจารย์ส่วนมากจะสอนใช้ Parameter นักศึกษาก็จะเซงไปว่าแค่บันทึกข้อมูลทำไมโค้ดมันยาวเป็นหางว่าวจังสิ๊ฟะ 555555 ไหนจะติดต่อฐานข้อมูลโน้นนี้นั้นอีก ถึงกับไม่ชอบภาษา vb กันไปเลยทีเดียว 5555555555555

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-02-08 08:07:09 By : adminliver
 


 

No. 10



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

เหมือนการจัดการ database จะผลักให้มีการจัดการในรูปของ list ให้มากขึ้นรึป่าวครับ

แทนที่เราจะใช้ for แบบบ้านๆ สำหรับจัดการ ก็ดึงเอาพวก binding เข้ามาช่วย
ยิ่ง entity ด้วยยิ่งออกแนว object ไปเลย

แล้วตัว Parameter น่าจะโผล่ขึ้นมาตอบโจทย์ เจ้าพวก data type รึป่าวครับ
เพราะเห็นบางคน จัดการ database แล้วจะติดเรื่อง datatype ไม่ตรง

แต่ถ้าเป็น Parameter

Code (C#)
this._adapter.InsertCommand = new global::System.Data.SqlClient.SqlCommand();
            this._adapter.InsertCommand.Connection = this.Connection;
            this._adapter.InsertCommand.CommandText = "INSERT INTO [dbo].[PostCode_Amphur] ([Post_Amphur], [Post_Amphur_Eng]) VALUES (@P" +
                "ost_Amphur, @Post_Amphur_Eng);\r\nSELECT Post_Amphur_ID, Post_Amphur, Post_Amphur_" +
                "Eng FROM PostCode_Amphur WHERE (Post_Amphur_ID = SCOPE_IDENTITY())";
            this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text;
            this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Post_Amphur", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Post_Amphur", global::System.Data.DataRowVersion.Current, false, null, "", "", ""));
            this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Post_Amphur_Eng", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Post_Amphur_Eng", global::System.Data.DataRowVersion.Current, false, null, "", "", ""));


ถ้าเป็นแบบนี้ก็จะตัดปัญหาเรื่อง input datatype ไม่ตรง ได้

แต่โดยส่วนตัวงานผม(ซึ่งก็ต้องเอ่ยว่า ไม่คล่องกับ SQL)จะเน้นเป็นแบบ datagrid ซึ่งก็จะเหมาะกับ dataset
ยกตัวอย่างถ้าเราอยากลบ data ซัก 2000 rows ถ้าผมใช้ SQL ก็ต้องใช้ for loop วนลบจนครบ
(แต่ถ้า เราไม่ได้ลบ ID ต่อกันละ)
แล้วถ้า การจัดการมีทั้ง Insert update delete rows ผมเคยลองจัดการดู(ขอบอกว่าเละ)

ถ้า dataset ก็แค่ เช็คการจัดการใน ตาราง แล้วก็ Update ตารางใหม่
Code (C#)
private int UpdateUpdatedRows(DATA_ALSDataSet dataSet, global::System.Collections.Generic.List<global::System.Data.DataRow> allChangedRows, global::System.Collections.Generic.List<global::System.Data.DataRow> allAddedRows) {
            int result = 0;
            if ((this._postCode_AmphurTableAdapter != null)) {
                global::System.Data.DataRow[] updatedRows = dataSet.PostCode_Amphur.Select(null, null, global::System.Data.DataViewRowState.ModifiedCurrent);
                updatedRows = this.GetRealUpdatedRows(updatedRows, allAddedRows);
                if (((updatedRows != null) 
                            && (0 < updatedRows.Length))) {
                    result = (result + this._postCode_AmphurTableAdapter.Update(updatedRows));
                    allChangedRows.AddRange(updatedRows);
                }
            }
            return result;
        }


แต่ dataset ก็ยังมีข้อเสียอยู่เหมือนกัน เรียกใช้งานช้า จึงไม่น่าเหมาะสำหรับที่ใช้กับคนหมู่มาก(ของผมใช้แค่ 10 กว่าคนเอง)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-02-08 08:47:57 By : lamaka.tor
 


 

No. 11



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ตัวอย่างการใช้ Cultrue ครับ

https://www.thaicreate.com/community/windows-form-datetimepicker.html
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-02-08 08:54:09 By : mr.win
 


 

No. 12



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

กรณีที่เป็น DataType จะต้องระบุเข้าไปด้วยครับ ตัวอย่าง

Code (VB.NET)
        strConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\database.mdb"
        objConn.ConnectionString = strConnString
        objConn.Open()

        '*** Insert to orders ***'
        strSQL = "INSERT INTO orders (OrderDate,Name,Address,Tel,Email) " & _
        " VALUES " & _
        " (@sOrderDate,@sName,@sAddress,@sTel,@sEmail)"

        Dim objCmd As New OleDbCommand(strSQL, objConn)
        objCmd.Parameters.Add("@sOrderDate", OleDbType.Date).Value = Now()
        objCmd.Parameters.Add("@sName", OleDbType.VarChar).Value = Me.txtName.Text
        objCmd.Parameters.Add("@sAddress", OleDbType.VarChar).Value = Me.txtAddress.Text
        objCmd.Parameters.Add("@sTel", OleDbType.VarChar).Value = Me.txtTel.Text
        objCmd.Parameters.Add("@sEmail", OleDbType.VarChar).Value = Me.txtEmail.Text
        objCmd.ExecuteNonQuery()

        '*** Select OrderID ***'
        strSQL = "SELECT Max(OrderID) As sOrderID FROM orders "
        dtAdapter = New OleDbDataAdapter(strSQL.ToString(), objConn)
        dtAdapter.Fill(dt1)
        If dt1.Rows.Count > 0 Then
            strOrderID = dt1.Rows(0)("sOrderID")
        End If

        '*** Insert to orders_detail ***'
        dt2 = DirectCast(Session("myCart"), DataTable)
        For i = 0 To dt2.Rows.Count - 1
            strSQL = "INSERT INTO orders_detail (OrderID,ProductID,Qty) " & _
            " VALUES " & _
            " ('" & strOrderID & "','" & dt2.Rows(i)("ProductID") & "','" & dt2.Rows(i)("Qty") & "')"
            With objCmd
                .Connection = objConn
                .CommandText = strSQL
                .CommandType = CommandType.Text
                .ExecuteNonQuery()
            End With
        Next

        objConn.Close()
        objConn = Nothing

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-02-08 10:22:33 By : mr.win
 


 

No. 13



โพสกระทู้ ( 314 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 10 เขียนโดย : lamaka.tor เมื่อวันที่ 2017-02-08 08:47:57
รายละเอียดของการตอบ ::
ตอนนี้ผมเริ่มศึกษาเรื่อง Data set เห็นใน thaiCreate มีให้ศึกษาเยอะเลย เพราะลองเอามาปรับใช้ตามที่จารย์เคยแนะนำมันเเจ่มดีแฮระ อิอิ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-02-08 18:59:46 By : adminliver
 


 

No. 14



โพสกระทู้ ( 314 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 11 เขียนโดย : mr.win เมื่อวันที่ 2017-02-08 08:54:09
รายละเอียดของการตอบ ::
เก็ทเบยครับแอด ขอบคุณอีกครั้งครับผม

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-02-08 19:00:23 By : adminliver
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ขออนุญาติสอบถามเรื่อง Insert into เครื่องหมาย ' single quote ลง ฐานข้อมูล SQL (VB)
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 05
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่