更改SqlConnection超时

我想重写15秒的默认SqlConnection超时,并得到一个错误说

属性或索引器不能被分配,因为它是只读的。

有没有解决的办法?

 using (SqlConnection connection = new SqlConnection(Database.EstimatorConnection)) { connection.Open(); using (SqlCommand command = connection.CreateCommand()) { command.CommandType = CommandType.StoredProcedure; connection.ConnectionTimeout = 180; // This is not working command.CommandText = "sproc_StoreData"; command.Parameters.AddWithValue("@TaskPlanID", order.Projects[0].TaskPlanID); command.Parameters.AddWithValue("@AsOfDate", order.IncurDate); command.ExecuteNonQuery(); } } 

如果您想为特定查询提供超时,那么CommandTimeout是前进的方向。

它的用法是:

 command.CommandTimeout = 60; //The time in seconds to wait for the command to execute. The default is 30 seconds. 

您可以在连接string中设置超时值,但在连接后它是只读的。 你可以阅读更多在http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectiontimeout.aspx

正如Anil暗示的,ConnectionTimeout可能不是你所需要的; 它控制ADO驱动程序在build立新连接时等待的时间。 您的使用似乎表明需要等待比正常更长的时间执行特定的SQL查询,在这种情况下,Anil是完全正确的; 使用CommandTimeout(R / W)来更改单个SqlCommand的预期完成时间。

您可以随时将其添加到您的连接string:

 connect timeout=180; 

Web.Confing(WepApplication)方法是在xml文件中设置connectionString,例如Web.Confing(WepApplication)Web.Confing(WepApplication) App.Config(StandAloneApplication)

  <connectionStrings> <remove name="myConn"/> <add name="myConn" connectionString="User ID=sa;Password=XXXXX;Initial Catalog=qualitaBorri;Data Source=PC_NAME\SQLEXPRESS;Connection Timeout=60"/> </connectionStrings> 

通过代码,你可以通过这种方式获得连接:

 public static SqlConnection getConnection() { string conn = string.Empty; conn = System.Configuration.ConfigurationManager.ConnectionStrings["myConn"].ConnectionString; SqlConnection aConnection = new SqlConnection(conn); return aConnection; } 

你可以设置ConnectionTimeout只有你创build一个实例。 实例创build时,不要更改此值。

你需要使用command.CommandTimeout

您可以添加Connection Timeout=180; 到你的连接string

旧post,但是当它出现我正在寻找的东西,我想我会添加一些信息,这个主题。 我要添加评论,但我没有足够的代表。

正如其他人所说:

connection.ConnectionTimeout用于初始连接

command.CommandTimeout用于个人search,更新等。

但:

connection.ConnectionTimeout 用于提交和回滚事务。

是的,这是一个绝对疯狂的devise决定。

因此,如果您在提交或回滚时遇到超时,则需要通过连接string来增加此值。