运行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();
我错过了什么吗?还是顺序不对?
如果您在查询执行期间得到超时异常,这清楚地表明您的c#代码设法将查询传递给数据库,数据库尝试执行查询,但它无法在超时之前完成执行。
所以这里有一些我要采取的故障排除步骤。
- 首先确保你得到的超时是一个执行超时而不是连接超时。如果是连接超时,则表示SQL Server目前无法访问。如果是查询执行超时,请按照以下步骤查找导致查询超时的确切原因。
- 使用SQL Server Profiler(从SQL Server Management Studio的Tools菜单)来找出当这段代码执行时被触发的确切查询。
- 检查代码是否生成了太多的字段和值对。
- 尝试从SQL Server Management Studio执行相同的查询,并找出超时是否可重现。如果你在SQL Server中遇到同样的问题管理工作室以及,修复查询。