SQLConnectionString to ORM How - PullRequest
0 голосов
/ 28 ноября 2010

Привет, кто-то может мне помочь.

Как будет выглядеть этот код при использовании соединения ORM

Imports System.Data
Imports System.Data.SqlClient

Partial Class _Default
    Inherits System.Web.UI.Page

    Public Sub OpenDBproduct()
        Dim ProductConnection As SqlConnection = New SqlConnection(ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString)

        Dim ProductReader As SqlDataReader
        Dim ProductCommand As SqlCommand

        Dim ProductSQL As String = ""
        ProductSQL = "SELECT * FROM table1 ORDER BY PName DESC;"
        ProductCommand = New SqlCommand(ProductSQL, ProductConnection)

        'Prøv at åben Connection.
        Try
            ProductConnection.Open()
            ProductReader = ProductCommand.ExecuteReader(CommandBehavior.CloseConnection)
            'Hvis der er data, udskriv da dataen.
            If ProductReader.HasRows() Then

                Response.Write("<h2>Produkter</h2>")
                Response.Write("<table style=""width:340px; border:0px;""><tr>")

                Do While ProductReader.Read()
                    Response.Write("<td colspan=""3""><br /></td>")
                    Response.Write("</tr><tr>")
                    Response.Write("<td style=""width:10px;""></td>")
                    Response.Write("<td><div style=""width:52px; text-align:center;""><span class=""""># " & ProductReader("PName") & "</span></div></td>")
                    Response.Write("<td class=""""><span class="""">" & ProductReader("PName") & "</span><br /><span class="""">" & ProductReader("PPrice") & "</span><br /><span class=""""><b>" & ProductReader("Pean") & "</b></span></td>")
                    Response.Write("</tr><tr>")
                    Response.Write("<td colspan=""3""><br />" & ProductReader("PDescription") & "</td>")
                    Response.Write("</tr><tr>")
                    Response.Write("<td style=""border-bottom:dashed 2px #FFA902;"" colspan=""3""><br /></td>")
                    Response.Write("</tr><tr>")

                Loop
                Response.Write("</tr></table>")
                Response.Write("Slutning")
            Else
                'Hvis der ikke er data, lav en fejl tekst.
                Response.Write("<table style=""width:340px; border:0px;""><tr><td>")
                Response.Write("Der findes ingen produkter.")
                Response.Write("<br /><br />")
                Response.Write("Slutning")
                Response.Write("</td></tr></table>")
            End If

        Catch ex As Exception
            Console.WriteLine(ex.Message)

        Finally
            'Lukker Connection, Reader og Sletter Hukommelse.
            If Not ProductReader Is Nothing Then
                ProductReader.Dispose()
            End If
            If Not ProductConnection Is Nothing Then
                ProductConnection.Dispose()
            End If

        End Try
    End Sub
End Class 

1 Ответ

0 голосов
/ 28 ноября 2010

Если я вас правильно понял - вы спрашиваете об изменениях этого кода, если вы используете какой-либо ORM, например EntityFramework или NHibernate.Итак, краткое описание (извините за синтаксис C #):подключение изменится на строго типизированный код, без строки SQL.

using (var dbContext = new ProductEntites())
{
   var dbSelect = dbContext.Products.OrderBy(x=>x.PName);

Do-While будет изменено на foreach(var product in dbSelect)

Все ProductReader("PDescription") будет измененона product.PDescription (без строк!)

Использование ORM

  • гораздо безопаснее использовать всю прибыль строго типизированных классов (они будут генерироваться с помощью инструментов Visual Studio)
  • проверка параметров для SQL-инъекций производится автоматически
  • настоятельно рекомендуется, если вам нужно создать приложение, независимое от БД
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...