请大家帮小弟我看看这个数据库操作为何返回空行
请大家帮我看看这个数据库操作为何返回空行?
数据库Account中有一个查询sp_select_Users,内容为:
CREATE PROCEDURE [sp_select_Users]
(@UserID_1 [nchar] (20))
AS select userid from [Account].[dbo].[Users]
WHERE ([UserID]= @UserID_1)
GO
在查询分析器中运行返回一行结果,显示一个字段为lgh
而我在VB.NET中先定义了两个类一个DbObject,另一个是User,User是DbObject的子类,DbObject主要用于建立数据库连接对象与命令对象,而User用于添加参数交返回查询结果,具体代码如下:
Imports System.Data
Imports System.Data.SqlClient
Public Class DbObject
Private conntionString As String
Protected connection As SqlConnection
'构造函数
Public Sub New(ByVal newConnectionString As String)
conntionString = newConnectionString
connection = New SqlConnection(newConnectionString)
End Sub
'下面这个函数用于建立命令对象
Public Function buildQueryCommand(ByVal storedProcName As String, ByVal parameters() As IDataParameter)
Dim command As SqlCommand = New SqlCommand(storedProcName, connection)
command.CommandType = CommandType.StoredProcedure
For Each parameter As SqlParameter In parameters
command.Parameters.Add(parameter)
Next
Return command
End Function
'下面这个函数用于运行存储过程
Protected Function RunProcedure(ByVal storedProcNmae As String, ByVal parameters() As IDataParameter) As SqlDataReader
Dim returnReader As SqlDataReader
connection.Open()
Dim command As SqlCommand = buildQueryCommand(storedProcNmae, parameters)
command.CommandType = CommandType.StoredProcedure
returnReader = command.ExecuteReader(CommandBehavior.CloseConnection)
Return returnReader
End Function
End Class
'User是DbObject的子类
Public Class User
Inherits dbobject
Dim reader As SqlDataReader
Public Sub New(ByVal connstr As String)
MyBase.New(connstr)
End Sub
'下面这个函数用于调用基类的存储过程RunProcedure()
Public Function IdInUser(ByVal Uid As String) As SqlDataReader
Dim paramters() As SqlParameter = {New SqlParameter( "@UserID_1 ", SqlDbType.NChar, 20)}
paramters(0).Value = Uid
reader = RunProcedure( "sp_select_Users ", paramters)
Return reader
End Function
数据库Account中有一个查询sp_select_Users,内容为:
CREATE PROCEDURE [sp_select_Users]
(@UserID_1 [nchar] (20))
AS select userid from [Account].[dbo].[Users]
WHERE ([UserID]= @UserID_1)
GO
在查询分析器中运行返回一行结果,显示一个字段为lgh
而我在VB.NET中先定义了两个类一个DbObject,另一个是User,User是DbObject的子类,DbObject主要用于建立数据库连接对象与命令对象,而User用于添加参数交返回查询结果,具体代码如下:
Imports System.Data
Imports System.Data.SqlClient
Public Class DbObject
Private conntionString As String
Protected connection As SqlConnection
'构造函数
Public Sub New(ByVal newConnectionString As String)
conntionString = newConnectionString
connection = New SqlConnection(newConnectionString)
End Sub
'下面这个函数用于建立命令对象
Public Function buildQueryCommand(ByVal storedProcName As String, ByVal parameters() As IDataParameter)
Dim command As SqlCommand = New SqlCommand(storedProcName, connection)
command.CommandType = CommandType.StoredProcedure
For Each parameter As SqlParameter In parameters
command.Parameters.Add(parameter)
Next
Return command
End Function
'下面这个函数用于运行存储过程
Protected Function RunProcedure(ByVal storedProcNmae As String, ByVal parameters() As IDataParameter) As SqlDataReader
Dim returnReader As SqlDataReader
connection.Open()
Dim command As SqlCommand = buildQueryCommand(storedProcNmae, parameters)
command.CommandType = CommandType.StoredProcedure
returnReader = command.ExecuteReader(CommandBehavior.CloseConnection)
Return returnReader
End Function
End Class
'User是DbObject的子类
Public Class User
Inherits dbobject
Dim reader As SqlDataReader
Public Sub New(ByVal connstr As String)
MyBase.New(connstr)
End Sub
'下面这个函数用于调用基类的存储过程RunProcedure()
Public Function IdInUser(ByVal Uid As String) As SqlDataReader
Dim paramters() As SqlParameter = {New SqlParameter( "@UserID_1 ", SqlDbType.NChar, 20)}
paramters(0).Value = Uid
reader = RunProcedure( "sp_select_Users ", paramters)
Return reader
End Function