【发布时间】:2011-06-26 21:14:33
【问题描述】:
我正在尝试在 VB.net 中编写一个方法,以便当我单击一个按钮时,它会查询数据库并返回与按钮旁边的文本框匹配的所有值。我不知道该怎么做,我假设在按钮的 onclick 方法中我需要从文本框中提取值,连接到数据库并将结果显示到 gridview?
非常感谢任何帮助。
谢谢:)
马克
【问题讨论】:
标签: asp.net vb.net webforms onclick
我正在尝试在 VB.net 中编写一个方法,以便当我单击一个按钮时,它会查询数据库并返回与按钮旁边的文本框匹配的所有值。我不知道该怎么做,我假设在按钮的 onclick 方法中我需要从文本框中提取值,连接到数据库并将结果显示到 gridview?
非常感谢任何帮助。
谢谢:)
马克
【问题讨论】:
标签: asp.net vb.net webforms onclick
免责声明:此代码容易受到 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>
例如,我刚刚使用了在 VisualStudio 2010 中启动新的 vb.net Web 应用程序时附加的标准数据库。
然后在你的 Default.aspx 中,有这样的东西:
<asp:TextBox runat="server" ID="TextBox1"></asp:TextBox>
<asp:Button runat="server" Text="Button" ID="Button1" />
在后面的代码中你可以这样做:
Imports System.Data.SqlClient
公共类_默认 继承 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 直接放入 select 语句之前,您必须对其进行验证,但这样就可以解决问题。
'CharIndex' 将遍历指定为第二个参数的列,并检查列数据和 textbox.text 之间是否匹配,如果匹配则返回该行。
阅读器将遍历结果,并使用 reader.GetValue 检索数据并施展你的魔法。
您当然可以将它附加到数据绑定网格或其他东西上,而不是使用 SQLDataReader...
【讨论】:
两个“最佳”选项是使用表适配器或实体框架。
这两个选项都会为您提供一个 GUI 界面来构建连接和后端数据库查询。实体框架是两者中较新的技术。如果您不确定,表适配器可能更容易学习/理解。 (现在“简单”的 cmets)
我会给出代码示例,但您必须了解其中任何一个的一些基础知识才能使它们有意义。任一链接中的基本示例应该足以满足您的需要。
这两个选项都可以让您将数据网格数据绑定到结果。
【讨论】: