यहाँ एक बहुत ही सरल ASP.NET VB.NET में एक पैरामिट्रीकृत क्वेरी का उपयोग कर OleDb के माध्यम से उदाहरण है:
Default.aspx
<%@ Page Title="Home Page" Language="vb" MasterPageFile="~/Site.Master" AutoEventWireup="false"
CodeBehind="Default.aspx.vb" Inherits="vbOleDbSite._Default" %>
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<p>
First Name: <asp:TextBox ID="FirstName" runat="server"></asp:TextBox><br />
Last Name: <asp:TextBox ID="LastName" runat="server"></asp:TextBox><br />
<br />
<asp:Button ID="btnAddUser" runat="server" Text="Add User" />
<br />
Status: <span id="spanStatus" runat="server">Awaiting submission...</span>
</p>
</asp:Content>
Default.aspx.vb
Public Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
End Sub
Protected Sub btnAddUser_Click(sender As Object, e As EventArgs) Handles btnAddUser.Click
Dim newID As Long = 0
Using con As New OleDb.OleDbConnection
con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\__tmp\testData.accdb;"
con.Open()
Using cmd As New OleDb.OleDbCommand
cmd.Connection = con
cmd.CommandText = "INSERT INTO UsersTable (LastName, FirstName) VALUES (?, ?);"
cmd.Parameters.AddWithValue("?", Me.LastName.Text)
cmd.Parameters.AddWithValue("?", Me.FirstName.Text)
cmd.ExecuteNonQuery()
End Using
Using cmd As New OleDb.OleDbCommand
cmd.Connection = con
cmd.CommandText = "SELECT @@IDENTITY"
newID = cmd.ExecuteScalar()
End Using
con.Close()
End Using
Me.spanStatus.InnerText = "User """ & Me.FirstName.Text & " " & Me.LastName.Text & _
""" has been added (ID: " & newID.ToString() & ")."
End Sub
End Class
नोट्स:
पैरामीटरयुक्त क्वेरी "?" का उपयोग करती है पैरामीटर के लिए "असली" नामों के बजाय, एक्सेस OLEDB पैरामीटर नामों को अनदेखा करता है। पैरामीटर को OleDbCommand.CommandText
में दिखाई देने वाले सटीक क्रम में परिभाषित किया जाना चाहिए।
[उपयोगकर्ताटेबल] तालिका में AutoNumber
प्राथमिक कुंजी है, और SELECT @@IDENTITY
INSERT INTO
कथन द्वारा बनाए गए नए कुंजी मान को पुनर्प्राप्त करता है।
स्रोत
2013-05-26 15:45:40
इस मदद करता है? ... एमएस एक्सेस डेटाबेस में एसक्यूएल इंजेक्शन [डुप्लिकेट] http://stackoverflow.com/questions/9392330/sql-injection-in-ms-access-database ... – Chris
मेरा मानना है कि आपको उस विषय से पढ़ने और पास करने की आवश्यकता है http://msdn.microsoft.com/en-us/library/aa139977(office.10).aspx – Aristos
@ क्रिस मैं सिर्फ एसक्यूएल इंजेक्शन से अपने डेटाबेस की रक्षा करना चाहता हूं, इसलिए जब टेक्स्ट बॉक्स में उपयोगकर्ता प्रविष्टि डेटा, मान लें कि यह लॉग इन फॉर्म है, उपयोगकर्ता प्रविष्टि टेक्स्ट के दौरान उपयोगकर्ता नाम टेक्स्टबॉक्स ', एक त्रुटि को संभाला जा सकता है – NPE