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 }
人各有命,上天注定,有人天生为王,有人落草为寇。脚下的路,如果不是你自己的选择,那么旅程的终点在哪,也没人知道。你会走到哪,会遇到谁,都不一定。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix