Phi*_*hil 5 .net enterprise-library sqldatareader daab
我的网站使用的是企业库v 5.0.主要是DAAB.一些函数,如executioncalar,executionataset正在按预期工作.当我开始使用读者时会出现问题
我的include类中有这个函数:
Public Function AssignedDepartmentDetail(ByVal Did As Integer) As SqlDataReader
Dim reader As SqlDataReader
Dim Command As SqlCommand = db.GetSqlStringCommand("select seomthing from somewhere where something = @did")
db.AddInParameter(Command, "@did", Data.DbType.Int32, Did)
reader = db.ExecuteReader(Command)
reader.Read()
Return reader
End Function
Run Code Online (Sandbox Code Playgroud)
这是从我的aspx.vb中调用的,如下所示:
reader = includes.AssignedDepartmentDetail(Did)
If reader.HasRows Then
TheModule = reader("templatefilename")
PageID = reader("id")
Else
TheModule = "#"
End If
Run Code Online (Sandbox Code Playgroud)
这会在db.ExecuteReader行上出现以下错误:
无法将类型为"Microsoft.Practices.EnterpriseLibrary.Data.RefCountingDataReader"的对象强制转换为"System.Data.SqlClient.SqlDataReader".
任何人都可以了解我如何开展这项工作.通过entlib与读者打交道时,我是否会遇到问题?
小智 0
我想我有一个可行的解决方案。
enter code here
' Create the Database object, using the default database service. The
' default database service is determined through configuration.
Dim db As Microsoft.Practices.EnterpriseLibrary.Data.Database = EnterpriseLibraryContainer.Current.GetInstance(Of Microsoft.Practices.EnterpriseLibrary.Data.Database)(DatabaseName)
Dim dbCommand As DbCommand
dbCommand = db.GetStoredProcCommand(StoredProcedureName)
'create a new database connection based on the enterprise library database connection
Dim dbConnection As System.Data.Common.DbConnection
dbConnection = db.CreateConnection
dbConnection.Open()
'set the dbCommand equal to the open dbConnection
dbCommand.Connection = dbConnection
'return a ADO sqlDatareader but still managed by the EnterpriseLibrary
Return dbCommand.ExecuteReader(CommandBehavior.CloseConnection)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7800 次 |
最近记录: |