代码之家  ›  专栏  ›  技术社区  ›  Erick

第一次使用SQLClient调用sql2008会创建超时。以后的电话都没问题

  •  2
  • Erick  · 技术社区  · 16 年前

    更新:我已经确定SQLClient代码在第一次调用时超时,但在所有后续调用中都有效。另外,当连接到managementstudio时,它也会在第一次超时,然后在我重试时连接。思想?

    原件: 嘿,伙计们, 我有一个很奇怪的问题,我似乎无法解决。我有一个应用程序可以连接到几个不同版本的SQLServer。我连接到2005或2008 R2没有问题。但是我有2008标准的超时问题。我甚至编写了一个示例应用程序来尝试解决这个问题。下面是有效的示例代码:

    OdbcConnection conn = null;
    OdbcDataAdapter adp = null;
    DataSet resultSet = new DataSet();
    DataTable result = null;
    
    string queryString = Query.Text;
    conn = new OdbcConnection(@"Driver={SQL Server Native Client 10.0};Server=MyServer\DataSource;Database=MyDatabase;Uid=MyUser;Pwd=ThePassword;");
    conn.Open();
    adp = new OdbcDataAdapter(queryString, conn);
    adp.Fill(resultSet);
    result = resultSet.Tables[0];
    ResultsGrid.DataSource = result;
    

    下面是超时的示例代码:

    SqlConnection conn = null;
    SqlDataAdapter adp = null;
    DataSet resultSet = new DataSet();
    DataTable result = null;
    
    string queryString = Query.Text;
    conn = new SqlConnection(Application Name=HCGPrevision; Data Source=MyServer\DataSource; Initial Catalog=MyDatabase;UID=MyUser;PWD=ThePassword;);
    conn.Open();
    adp = new SqlDataAdapter(queryString, conn);
    adp.Fill(resultSet);
    result = resultSet.Tables[0];  //Assume only one result set/table.
    ResultsGrid.DataSource = result;
    

    谢谢,

    埃里克

    1 回复  |  直到 16 年前
        1
  •  1
  •   Erick    16 年前

    http://blogs.msdn.com/b/adonet/archive/2010/04/18/sqlclient-default-protocol-order.aspx

    我在连接字符串和Viola中添加了“np:”到数据源!连接时间!