运行INSERT INTO SQL语句时超时

本文关键字:超时 语句 SQL INSERT INTO 运行 | 更新日期: 2023-09-27 18:08:40

我想使用SQL insert INTO语句插入数据,但是出现一个错误Timeout expired。任何人都可以帮助我。谢谢。代码如下:

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();    

我错过了什么吗?还是顺序不对?

运行INSERT INTO SQL语句时超时

如果您在查询执行期间得到超时异常,这清楚地表明您的c#代码设法将查询传递给数据库,数据库尝试执行查询,但它无法在超时之前完成执行。

所以这里有一些我要采取的故障排除步骤。

    首先确保你得到的超时是一个执行超时而不是连接超时。如果是连接超时,则表示SQL Server目前无法访问。如果是查询执行超时,请按照以下步骤查找导致查询超时的确切原因。
  1. 使用SQL Server Profiler(从SQL Server Management Studio的Tools菜单)来找出当这段代码执行时被触发的确切查询。
  2. 检查代码是否生成了太多的字段和值对。
  3. 尝试从SQL Server Management Studio执行相同的查询,并找出超时是否可重现。如果你在SQL Server中遇到同样的问题管理工作室以及,修复查询。