我制作了一个基本程序,通过SQL连接并从表中获取内容,它正常工作。我想要的是;当连接通过SQL Server或Internet连接丢失时,它必须继续列出在连接丢失之前获得的项目,而不是给出“连接问题错误”。
代码是这样的:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim strSQL As String
Dim conn As New SqlConnection
conn.ConnectionString = baglan()
conn.Open()
strSQL = "SELECT * FROM Telefon_Otomasyon"
Dim da As New SqlDataAdapter(strSQL, conn)
Dim dset As New DataSet()
da.Fill(dset, "Telefon_Otomasyon")
Dim Hepsi As DataRow
For Each Hepsi In dset.Tables("Telefon_Otomasyon").Rows
Response.Write(Hepsi("Arayan") & "<br />")
Next
End Sub
谢谢!
答案 0 :(得分:1)
你可以做的是将你的数据集存储在Session中:(原谅我的VB,我很生气)
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim strSQL As String
Dim conn As New SqlConnection
conn.ConnectionString = baglan()
conn.Open()
strSQL = "SELECT * FROM Telefon_Otomasyon"
Dim da As New SqlDataAdapter(strSQL, conn)
Dim dset As New DataSet()
Try
da.Fill(dset, "Telefon_Otomasyon")
MyDataset = dset
Catch ex As SqlException
dset = MyDataset
End Try
Dim Hepsi As DataRow
For Each Hepsi In dset.Tables("Telefon_Otomasyon").Rows
Response.Write(Hepsi("Arayan") & "<br />")
Next
End Sub
Private Property MyDataset() As DataSet
Get
return Session("myDataset")
End Get
Set(ByVal value as DataSet)
Session("myDataset") = value
End Set
End Property
这也是一个非常基本的例子,在生产代码中使用它之前需要对其进行整理,即如果Session中没有存储数据集,则需要考虑如何处理(如果它返回null)。您可能希望比这更聪明,只需存储特定的表。请注意,Session可能会过期,因此请对其进行一些阅读。这应该足以引导你朝着正确的方向前进。
进一步注意:如果你想要一些比Session更不易变化的东西,那么你可以尝试使用Cache。
答案 1 :(得分:0)
我不确定我在这里理解这个问题。虽然我不是VB程序员,但在我看来,一旦页面加载,它将运行SQL查询然后处理该数据集。
如果您重新加载页面并且SQL连接不起作用,您将收到一个错误,您需要以某种方式处理(不确定VB异常是如何工作的,但我确定您可以确定那个)。
另一方面,如果您希望从查询中断查询中获取任何数据,我会说这很难,只与大量查询相关。