尝试使用 VB 从 ACCESS 数据库中输出 Visual Web Developer 2008 中的数据
Posted
技术标签:
【中文标题】尝试使用 VB 从 ACCESS 数据库中输出 Visual Web Developer 2008 中的数据【英文标题】:Trying to output Data in Visual Web Developer 2008 from ACCESS Database using VB 【发布时间】:2011-11-05 19:12:40 【问题描述】:好的,我可以成功连接到我的 Access 数据库,但我仍在学习如何输出该数据。这是失败的地方。
我正在设计一个页面,用户在其中输入客户 ID,然后获取该客户的事件列表。然后我希望用户能够添加关于该事件的调查。
我遇到的问题是显示这些数据的能力。我尝试了各种方法。最终,我希望能够将数据显示到列表框中并让他们选择它并进行调查,但我还没有那么远。这是我在连接上的内容以及我无法输出数据的尝试:
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim sql As String = "SELECT [Title], [Description] FROM [Incidents] WHERE ([CustomerID] = textbox1.text)"
Dim conn As New System.Data.OleDb.OleDbConnection()
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "C:\Users\Allen PC7\Documents\Visual Studio 2008\Projects\1-A SportsPro\App_Data\TechSupport.mdb"
Dim myCommand As New System.Data.OleDb.OleDbCommand(sql, conn)
conn.Open()
Dim myReader As System.Data.OleDb.OleDbDataReader = myCommand.ExecuteReader()
Try
While myReader.Read()
Console.WriteLine(myReader.GetInt32(0).ToString() + ", " + myReader.GetString(1))
End While
Finally
myReader.Close()
conn.Close()
End Try
End Sub
我只是无法在控制台中显示任何内容,而是收到一条错误消息 Dim myReader As System.Data.OleDb.OleDbDataReader = myCommand.ExecuteReader()...System.Data.OleDb.OleDbException: No value given用于一个或多个必需参数。
谢谢
【问题讨论】:
【参考方案1】:您没有向 SQL 传递正确的值:
"SELECT [Title], [Description] FROM [Incidents] WHERE ([CustomerID] = textbox1.text)"
它将尝试寻找等于数据库值“textbox1.text”的CustomerID
。由于这可能是错误的数据类型和不存在的表/列,因此您会收到错误消息。
您应该使用parameterized query 来避免SQL Injection。
Dim sql As String = "SELECT [Title], [Description] FROM [Incidents] WHERE ([CustomerID] = ?)"
Dim myCommand As New System.Data.OleDb.OleDbCommand(sql, conn)
myCommand.Parameters.Add("@p1", OleDbType.Integer, 4).Value = textbox1.text
如果 textbox1.text
中的值不是正确的类型,这将失败 - 您应该验证并转换为正确的类型(我的代码假定为整数)。
【讨论】:
那么我将如何进行一个简单的查询以从 textbox1 中获取值并显示该特定输入客户 ID 号的标题和描述?我几乎没有运气在网上找到这些信息。 @allencoded - 修改答案,添加示例。我建议阅读 OleDB 类的 MSDN 文档。以上是关于尝试使用 VB 从 ACCESS 数据库中输出 Visual Web Developer 2008 中的数据的主要内容,如果未能解决你的问题,请参考以下文章
使用 vb.net 以编程方式将 Access 数据库从 03 转换为 07?
ASP.NET - VB.NET - 从 MS-Access 数据库中检索记录