查询多个数据库SQL Server
问题描述:
我在Azure SQL Server上的多个数据库上运行查询时遇到问题。这是我从查询中返回DataTable一旦执行的功能。该函数将数据库名称作为字符串并将其插入到conenction字符串中,以及要执行的查询。查询多个数据库SQL Server
该函数工作正常,当我运行一次,返回DataTable填充返回的行按预期,但是当我使用'foreach'语句(遍历数据库名称列表迭代)调用函数时,我得到一个超时错误或登录失败的错误。
任何帮助,将不胜感激。
public static DataTable runQuery(String db, String query)
{
using (SqlConnection con = new SqlConnection("Data Source=server.database.windows.net;Initial Catalog=" + db + ";User [email protected];Password=password"))
{
con.Open();
using (DataTable dt = new DataTable())
{
try
{
SqlCommand cmd = new SqlCommand(query, con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
cmd.Dispose();
da.Dispose();
}
catch (SqlException ex)
{
MessageBox.Show(ex.Message);
}
return dt;
}
}
}
将CommandTimeout设置为0表示 “无限”。也许尝试像600,这是10分钟。 (或者对你的问题有意义的东西)。 “无限”是一个很长的时间.....只是一个建议。 – granadaCoder 2013-03-06 15:05:27
@granadaCoder超时时间现在是100,事实证明问题出在SQL数据库而不是我的代码! – btply 2013-03-06 16:16:00