簡體   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