繁体   English   中英

运行INSERT INTO SQL语句时超时已过期

[英]Timeout expired while running INSERT INTO SQL statement

我想使用SQL INSERT INTO语句插入数据,但是发生超时超时错误。 任何人都可以帮助我。 谢谢。 代码是这样的。

SqlConnection sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["IMS"].ConnectionString);                
            SqlCommand sqlCom = new SqlCommand();
            sqlCom = sqlConn.CreateCommand();                

            var strField = new List<string>();
            var strVal = new List<string>();                

            if (this.Row.TriggerEntityID != null)
            {
                sqlCom.Parameters.AddWithValue("@EntityId", this.Row.TriggerEntityID);
                strField.Add("EntityID");
                strVal.Add("@EntityId");
            }

            if (this.Row.TriggerProjectID != null)
            {
                sqlCom.Parameters.AddWithValue("@ProjectId", this.Row.TriggerProjectID);
                strField.Add("ProjectID");
                strVal.Add("@ProjectId");
            }

            sqlCom.Parameters.AddWithValue("@EngagementId", this.Row.Id);

            string[] arrField = strField.ToArray();
            string[] arrVal = strVal.ToArray();

            string fld = arrField[0];
            string val = arrVal[0];
            for (var j = 1; j < arrField.Length; j++)
            {
                fld = fld + "," + arrField[j];
                val = val + "," + arrVal[j];
            }                

            sqlCom.CommandText = "INSERT INTO Engagement_Project_Entity (EngagementID, " + fld + ") VALUES (@EngagementId, " + val + ")";

            sqlConn.Open();
            sqlCom.ExecuteNonQuery();
            sqlConn.Close();    

我想念什么吗? 还是顺序错误?

如果在查询执行期间遇到超时异常,则清楚地表明您的C#代码成功将查询传递给数据库,并且数据库尝试执行查询,但是在超时之前无法完成执行。

因此,这里有一些我将要采取的故障排除步骤。

  1. 首先,确保您获得的超时是执行超时,而不是连接超时。 如果是连接超时,则表示目前无法访问SQL Server。 如果这是查询执行超时,请按照以下步骤查找导致查询超时的确切原因。
  2. 使用SQL Server Profiler(从SQL Server Management Studio的“工具”菜单中)找出执行这段代码时将触发的确切查询。
  3. 检查代码是否生成了太多的fld和值对。
  4. 尝试从SQL Server Management Studio执行相同的查询,并确定超时是否可重现。 如果您从SQL Server Management Studio中也遇到相同的问题,请修复查询。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM