[SqlException (0x80131904): 超时时间已到。在操作完成之前超时时间已过或服务器未响应。]
System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +925466
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +800118
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +186
System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +1932
System.Data.SqlClient.SqlDataReader.ConsumeMetaData() +31
System.Data.SqlClient.SqlDataReader.get_MetaData() +62
System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +297
System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +1005
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +132
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) +32
System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +122
System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior) +62
SqlHelper.ExecuteReader(String connString, CommandType cmdType, String cmdText, SqlParameter[] cmdParms) +207
Ethnicraft.DAL.PriceProvider.SalesPRiceValueHasSet1(Int32 productVariantId, String customerId) +545
Ethnicraft.BLL.PriceProvider.ModifySalesPricePerProduct(SqlTransaction trans, String customerID, String productVariantID, String basePriceLevel, String priceLevelID, String calculation, String currency, DateTime ValidateEndDate, String res) +181
ModifySupplierPercollection.btnsConfirm_Click(Object sender, EventArgs e) in e:\EthnicraftWeb\Modules\product\ModifySupplierPercollection.aspx.cs:463
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +107
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint
Sqldatareader
事务吗????
哎,兄弟,想想原理先...........
Sqltransaction 是用在多sql任务写数据库时的
<system.web>
<httpRuntime maxRequestLength="4096" executionTimeout="43200" />
</system.web>
{
conn.Open();
SqlTransaction trans = conn.BeginTransaction();
try
{
foreach (DataRow row in dt.Rows)
//DataRow row = dt.Rows[0];
{
//PriceProvider.ModifySupplier(null, txtCustomerID.Text, row["productVariantID"].ToString(), ddlSupp.SelectedValue);
PriceProvider.ModifySalesPricePerProduct(trans, txtCustomerID.Text, row["ProductVariantID"].ToString(),
ddlBaseonPriceLevel1.SelectedItem.Text, txtCustomerID.Text, txtFormula1.Text, ddlCurrency1.SelectedItem.Text,
Convert.ToDateTime(TxtValidateEndDate1.Text), txtRes.Text); //lblmsgSupp.Text =lblmsgSupp.Text+ row["productVariantID"].ToString();
}
trans.Commit();
trans.Dispose();
trans = null; lblmsgSupp.Text = "succeed";
initDataTable();
}
catch
{
// trans1.Rollback();
trans.Rollback();
//lblmsgSupp.Text = conn.ConnectionTimeout.ToString();
throw;
}
其实如果不加FOREACH 这段代码可以运行成功,可是一但加上foreach以后 运行到第一个调用ExecuteReader的地方就卡住超时了....
我百思不得其解
// 摘要:
// Gets or sets the wait time before terminating the attempt to execute a command
// and generating an error.
//
// 返回结果:
// The time in seconds to wait for the command to execute. The default is 30
// seconds.
[ResDescription("DbCommand_CommandTimeout")]
[ResCategory("DataCategory_Data")]
public override int CommandTimeout { get; set; }
默认是30秒 自己设一下吧