如何使用 sql Connection 在 vb.net 中获取 DataTable

问题描述 投票:0回答:2
Dim oConnString As String
Dim strQuery As String
Dim myConn As SqlConnection
Dim myCmd As SqlCommand
Dim myReader As SqlDataReader
Dim results As String

oConnString = "Data Source=" + strServerName + "; Database='" + strDatabaseName + "';Integrated Security=true"

Dim oConnection As SqlConnection = New SqlConnection(oConnString)
strQuery = "SELECT * from Usertable"

myCmd = oConnection.CreateCommand
myCmd.CommandText = strQuery
oConnection.Open()

myReader = myCmd.ExecuteReader()

'Some codes here'

myReader.Close()
myConn.Close()

'============================================== =============================================== 对这个错误有什么想法吗? 我在处理“myReader = myCmd.ExecuteReader()”这一行时遇到错误 错误: “抛出异常:System.Data.dll 中的‘System.Data.SqlClient.SqlException’ 附加信息:执行超时已过期。在操作完成之前超时时间已过或服务器没有响应。”

我期待阅读数据库中的所有专栏。

vb.net sqlconnection
2个回答
0
投票

看起来您的查询在完成之前就超时了。您可以通过在 sql 字符串中设置 wait_timeout 来即时增加超时时间。

对于 mySQL,这会将超时时间设置为 300 秒

strQuery = "SET SESSION wait_timeout=300;SELECT * from Usertable"

对于 SQL Server,将连接超时参数添加到连接字符串中。

oConnString = "Data Source=" + strServerName + "; Database='" + strDatabaseName + "';Integrated Security=true;Connection Timeout=300;"

0
投票

尝试设置命令超时

myCmd.CommandTimeout = 5*60 '5 min

从读取器获取数据表:

Dim myReader = cmd.ExecuteReader()
Dim dataTable = New DataTable()
dataTable.Load(myReader)
© www.soinside.com 2019 - 2024. All rights reserved.