【发布时间】:2015-06-02 15:20:23
【问题描述】:
所以这是我的问题:
目前我正在尝试制作一份报告,显示第一班和第二班,按多天...
因此,如果他们选择 6/02 - 6/04 范围,我将运行 3 次查询...一次用于 6/02、6/03 和 6/04...他们还可以选择班次,所以应该是那些日期,但是第一班是凌晨 4:30 到下午 4:30....
目前我有一个错误,当我试图将我的查询/调用放在 for 循环中时......我计算了两个日期的差异并将它们设置得很好,它只是我的连接字符串给了我错误:
如果图片不好看这里是错误的文字描述:
“/mfgx_test”应用程序中的服务器错误。
填充:SelectCommand.Connection 属性尚未初始化。
描述:执行过程中发生了未处理的异常 当前的网络请求。请查看堆栈跟踪以获取更多信息 有关错误的信息以及它在代码中的来源。
异常详情:System.InvalidOperationException:填写: SelectCommand.Connection 属性尚未初始化。
来源错误:
第 623 行:将 dsTop1 调暗为新数据集 第 624 行:将 daTop1 调暗 作为新的 SqlDataAdapter(strSql, myCn1) 第 625 行:
daTop1.Fill(dsTop1) 第 626 行: 第 627 行: myCn1.Close()源文件:C:\inetpub\wwwroot\mfgx_test\defectsbyround.aspx.vb
线路:625
这让我相信我的连接字符串在我的 for 循环之外有问题......我的代码如下(虽然有点清理,所以更容易阅读):
Dim myCn1 As New SqlConnection
myCn1.ConnectionString = "server=Blah;database=Blah;user id=Blah;password=Blah"
myCn1.Open()
For i = 0 To Session("DaysDiff")
strSql = "Blah.Blah"
Dim dsTop1 As New DataSet
Dim daTop1 As New SqlDataAdapter(strSql, myCn1)
daTop1.Fill(dsTop1)
myCn1.Close()
myCn1 = Nothing
If dsTop1.Tables(0).Rows.Count > 0 Then
spitout2(dsTop1)
End If
txtStartdate.Text = DateAdd("d",1,txtStartdate.Text)
txtEnddate.Text = DateAdd("d",1,txtEnddate.Text)
Next
【问题讨论】:
-
那么你关闭连接inside循环所以下一轮......如果你想重用它然后在循环完成时关闭。
-
这不是经典的 ASP,而是用 VB.Net 编写的 Asp.Net
-
它在我的 .aspx.vb 文件中,我认为两者都有点...但是当我选择 vb.net 时,我的代码部分的颜色消失了,所以我把它关掉了,但是谢谢你澄清一下
-
还有@AlexK。我不知道我是怎么错过的,但非常感谢:D
标签: asp.net connection-string server-error