• DbCommand :执行超时已过期。完成操作之前已超时或服务器未响应。


    问题:“Timeout 时间已到。在操作完成之前超时时间已过或服务器未响应。”的解决方法

    在一个链接数据库的时候,老是出现超时的错误:执行超时已过期。完成操作之前已超时或服务器未响应。 

    就是给这个链接加上一个TimeOut的属性

     public static DataSet ExeQuery(string Cmd)
        {
    
            Database db = DatabaseFactory.CreateDatabase(connstring_TMS);
            DbConnection conn = db.CreateConnection();
            try
            {
                DbCommand comm = conn.CreateCommand();
                comm.CommandTimeout = 5000;//500秒,单位是秒
                conn.Open();
                comm.CommandText = Cmd;
                DbDataReader read = comm.ExecuteReader();
                return ConvertDataReaderToDataSet(read);
            }
    
            finally
            {
                conn.Close();
                conn = null;
            }
        }
     1  public static DataSet ConvertDataReaderToDataSet(DbDataReader reader)
     2     {
     3         DataSet dataSet = new DataSet();
     4         do
     5         {
     6             // Create new data table
     7             DataTable schemaTable = reader.GetSchemaTable();
     8             DataTable dataTable = new DataTable();
     9             if (schemaTable != null)
    10             {
    11                 // A query returning records was executed 
    12                 for (int i = 0; i < schemaTable.Rows.Count; i++)
    13                 {
    14                     DataRow dataRow = schemaTable.Rows[i];
    15                     // Create a column name that is unique in the data table 
    16                     string columnName = (string)dataRow["ColumnName"]; //+ " // Add the column definition to the data table 
    17                     DataColumn column = new DataColumn(columnName, (Type)dataRow["DataType"]);
    18                     dataTable.Columns.Add(column);
    19                 }
    20                 dataSet.Tables.Add(dataTable);
    21                 // Fill the data table we just created
    22                 while (reader.Read())
    23                 {
    24                     DataRow dataRow = dataTable.NewRow();
    25                     for (int i = 0; i < reader.FieldCount; i++)
    26                     {
    27                         dataRow[i] = reader.GetValue(i);
    28                     }
    29                     dataTable.Rows.Add(dataRow);
    30                 }
    31             }
    32             else
    33             {
    34                 // No records were returned
    35                 DataColumn column = new DataColumn("RowsAffected");
    36                 dataTable.Columns.Add(column);
    37                 dataSet.Tables.Add(dataTable);
    38                 DataRow dataRow = dataTable.NewRow();
    39                 dataRow[0] = reader.RecordsAffected;
    40                 dataTable.Rows.Add(dataRow);
    41             }
    42         }
    43         while (reader.NextResult());
    44         return dataSet;
    45     } 
  • 相关阅读:
    用变量构造函数检查变量类型
    HTML5的File API读取文件信息
    jQuery插件中的this指的是什么
    了解babel
    了解.gitignore
    高德地图画正六边形
    编写可维护性的js读书笔记
    百度地图遇到的问题
    实用的两个移动端demo
    git基本操作总结
  • 原文地址:https://www.cnblogs.com/ZkbFighting/p/12009568.html
Copyright © 2020-2023  润新知