asp.net (веб-формы с VB.Net) подключается к базе данных SQL - PullRequest
3 голосов
/ 14 февраля 2011

Я пытаюсь написать метод на VB.net, чтобы при нажатии кнопки он запрашивал базу данных и возвращал все значения, соответствующие текстовому полю, расположенному рядом с кнопкой.Я понятия не имею, как это сделать, я предполагаю, что в методе onclick для кнопки мне нужно будет извлечь значение из текстового поля, подключиться к базе данных и отобразить результаты в виде таблицы?

Любая помощьс благодарностью.

спасибо:)

Марк

Ответы [ 2 ]

0 голосов
/ 14 февраля 2011

Два «лучших» варианта - использовать Table Adapter или Entity Framework.

Обе опции предоставят вам графический интерфейс для создания соединения и запросов к базе данных. Entity Framework - новейшая технология из двух. Настольные адаптеры, вероятно, легче изучить / понять, если вы не уверены. (Сейчас "легкие" комментарии)

Я бы привел примеры кода, но вам придется понять некоторые из них, чтобы они имели какой-либо смысл. Базовых примеров в любой ссылке должно быть достаточно для того, что вам нужно.

Оба варианта позволят вам связать вашу таблицу данных с результатами.

0 голосов
/ 14 февраля 2011

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ : Этот код подвержен атакам внедрения SQL-кода и не должен использоваться в производственной среде. Только для тестирования. В частности:

strSQL = "SELECT * from Table where charindex ('" & TextBox1.Text & "', columnname) > 0 "

Сначала в файле web.config добавьте этот раздел, который указывает на вашу базу данных:

<connectionStrings>
<add name="ApplicationServices"
     connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true"
     providerName="System.Data.SqlClient" />
</connectionStrings>

Например, я только что использовал стандартную базу данных, которая присоединяется при запуске нового веб-приложения vb.net в VisualStudio 2010.

Тогда в вашем Default.aspx есть что-то вроде этого:

<asp:TextBox runat="server" ID="TextBox1"></asp:TextBox>
<asp:Button runat="server" Text="Button" ID="Button1" />

И в коде позади вы можете сделать что-то вроде этого:

Imports System.Data.SqlClient

Открытый класс _Default Наследует System.Web.UI.Page

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim strSQL As String = String.Empty

    ' Define your select statement
    strSQL = "SELECT * from Table where charindex ('" & TextBox1.Text & "', columnname) > 0 "
    ' Fire up SQLConnection with a DataReader
    Using connection As New SqlConnection(ConfigurationManager.ConnectionStrings("ApplicationServices").ConnectionString)
        Dim command As New SqlCommand(strSQL, connection)
        connection.Open()
        Dim reader As SqlDataReader = command.ExecuteReader()

        While reader.Read()
            Try
                ' Do some magic with reader.GetValue()
            Catch ex As Exception
            End Try
        End While

        reader.Close()
        connection.Close()
    End Using
End Sub

Конечный класс

Конечно, вам нужно будет проверить textbox.text, прежде чем помещать его непосредственно в оператор выбора, но это поможет.

CharIndex будет проходить по столбцу, указанному в качестве второго параметра, и проверять, есть ли совпадение между данными столбца и textbox.text, если это так, он возвращает строку.

Считыватель будет циклически просматривать результаты, а с помощью reader.GetValue вы можете извлекать данные и творить чудеса.

Вместо использования SQLDataReader вы, конечно, можете присоединить его к сетке с привязкой к данным или к чему-то еще ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...