簡體   English   中英

如何從ASP.NET應用程序訪問數據庫?

[英]How to Access a Database from an ASP.NET Application?

我正在構建一個Web應用程序(asp.net&c#),我想將其與db(正在構建)連接,並且我正在尋找關於\\ db與數據庫連接並安全地進行操作的教程\\本書(避免sql注入) 。 我的查詢非常簡單,並不復雜。

我讀了一些有關存儲過程,准備好的語句,LiNQ的信息,這確實讓我感到困惑。

有人可以指出我在哪里閱讀該怎么做嗎?

在ASP.NET中訪問數據庫與在任何.NET應用程序中訪問數據庫沒有什么不同,僅是因為ASP.NET是.NET應用程序。 在.NET中訪問關系數據庫的方法是使用ADO.NET

只要使用參數化查詢,就可以防止SQL注入。 讓我們以SQL Server為例:

string firstname = "John";
using (var conn = new SqlConnection("Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;"))
using (var cmd = conn.CreateCommand())
{
    conn.Open();
    cmd.CommandText = "SELECT lastname FROM mytable WHERE firstname = @firstname;";
    cmd.Parameters.AddWithValue("@firstname", firstname);
    using (var reader = cmd.ExecuteReader())
    {
        while (reader.Read())
        {
            string lastName = reader.GetString(0);
            // do something with the value
        }
    }
}

現在與以下代碼錯誤代碼 )進行比較:

string firstname = "John";
using (var conn = new SqlConnection("Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;"))
using (var cmd = conn.CreateCommand())
{
    conn.Open();
    cmd.CommandText = "SELECT lastname FROM mytable WHERE firstname = '" + firstname + "';";
    using (var reader = cmd.ExecuteReader())
    {
        while (reader.Read())
        {
            string lastName = reader.GetString(0);
            // do something with the value
        }
    }
}

第二個示例很糟糕,容易受到SQL注入的攻擊。 因此,基本上,每次在構建查詢字符串時使用+運算符都會導致錯誤。

一旦您厭倦了編寫所有這些SQL查詢,就可以考慮使用ORM .NET附帶的一個稱為ADO.NET實體框架

這是一個相當廣泛的問題。 我建議您花一些時間使用Google,以更好地了解ADO.NET作為起點。

連接到ASP.NET中的數據庫

ASP.NET數據訪問教程

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM