我已经看到了很多类似的问题,但它没有像其他人那样呈现 - 实际上,我在尝试时收到System.NullReferenceException
消息将存储在“项目设置”中的SQL连接字符串添加到一个模块中,该模块允许我传递SQL Server查询并通过公共属性返回结果。为了清楚起见,我不引用App.config文件(当我尝试从ConfigurationManager
导入时,我似乎看不到System.Configuration
) - 相反,我正在使用My.Settings.MasterDataConnectionString
方法将属性调用到SQLConnection对象中。
这是我当前的命令;
Imports System.Data.SqlClient
Public Module SQLDataSetQuery
Private _sqlConnection As SqlConnection
Private _sqlCommand As New SqlCommand()
Private _sqlReader As SqlDataReader
Private _sqlResults As DataSet = New DataSet()
Public ReadOnly Property GetResults(Optional ByVal KeepMode As Integer = 0) As DataSet
Get
If KeepMode = 0 Then
Return _sqlResults
ElseIf KeepMode = 1 Then
Return _sqlResults
_sqlResults.Clear()
ElseIf KeepMode = 2 Then
_sqlResults.Clear()
Return Nothing
Else
Return Nothing
End If
End Get
End Property
Public Sub ExecuteQuery(ByVal sqlQuery As String)
_sqlResults.Tables.Add()
_sqlConnection.ConnectionString = My.Settings.MasterDataConnectionString()
_sqlConnection.Open()
_sqlCommand.CommandText = sqlQuery
_sqlCommand.CommandType = CommandType.Text
_sqlCommand.Connection = _sqlConnection
_sqlReader = _sqlCommand.ExecuteReader()
If _sqlReader.HasRows Then
_sqlResults.Tables(0).Load(_sqlReader)
End If
_sqlReader.Close()
_sqlCommand.Dispose()
_sqlConnection.Close()
_sqlConnection.Dispose()
End Sub
End Module
我不明白为什么这不起作用 - 我尝试过使用System.My.Settings.MasterDataConnectionString
,我尝试在上面的代码块中使用相同的命令而不使用()
而且我也是尝试使用附加.ToString()
的命令(因为我在内部假定,因为它存储为Connectionstring,它可能是一个不同的Object类型),但它们都会出现相同的错误。我已经检查了项目设置,因此它们被保存了;
名称:MasterDataConnectionString
输入 :( Connectionstring)
范围:申请
值:Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\MasterData\MasterData.mdf;Integrated Security=True;Connect Timeout=30
我可以从Visual Studio中的服务器资源管理器中打开数据库文件(如果我没有错,它使用相同的详细信息?)没有问题,并且对数据库表运行查询没有问题,这进一步加剧了我的困惑。
我可以根据请求发布App.config文件,但如前所述,我没有使用此文件来获取数据 - 从查看其他问题(特别是here,here ,here和here)似乎他们没有使用解决方案设置来引用连接字符串 - 因此,除非我非常错误(并且非常愚蠢),问题与此无关
有人能指出我在正确的方向吗?