1
我正在写小型VB.Net应用程序,它应该基于从某些外部MDB文件(Access 2007)收集的数据构建报告。计划这个应用程序将使用参数化SQL查询来收集数据。这些查询的参数之一是外部MDB文件的路径。作为参数的外部数据库路径参数查询访问
这里去示例代码:
Dim conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=C:\Temp\Temp.mdb;")
conn.Open()
Dim cmd As New OleDbCommand()
cmd.Connection = conn
cmd.CommandType = CommandType.Text
cmd.CommandText = "SELECT * INTO Trend FROM TI IN '?' WHERE TI.Id=?;"
With cmd.Parameters
.Add("@p1", OleDbType.VarChar).Value = "C:\Temp\Source.mdb"
.Add("@p2", OleDbType.Integer).Value = 5
End With
cmd.ExecuteNonQuery()
conn.Close()
看起来简单,但它没有工作。启动后我的应用程序抛出以下异常 - System.Data.OleDb.OleDbException:磁盘或网络错误。
已经花了整整一天的时间让它无法工作。我做错了什么?
检查文件“C:\ Temp \ Temp.mdb”是否存在,如果存在,则通过本文:http://support.microsoft.com/kb/q251254/ – Chandu 2011-06-10 14:12:34
检查此链接。 http://www.mikesdotnetting.com/Article/26/Parameter-Queries-in-ASP.NET-with-MS-Access – Jack 2011-06-10 14:15:58
是的,看过这篇文章。没有运气。它似乎与第一个参数有某种联系,因为当我排除第一个参数并用**“SELECT * INTO TREND FROM TI IN'C:\ Temp \ Source.mdb'替换** CommandText **值时,TI.IdentKp = ?“**它的工作原理像是魅力/ – me9a6yte 2011-06-10 14:17:57