SqlCommand.ExecuteNonQuery挂起

时间:2018-03-07 18:57:53

标签: c# sql-server sqlcommand executenonquery

我正在处理的项目中遇到一个奇怪的问题:

我将文件上传到表中,作为varbinary,如下所示,但ExecuteNonQuery卡住了大约一分钟。

cmd.Parameters.Add("@FichierBinary_IN", SqlDbType.VarBinary, -1).Value = data;
cmd.ExecuteNonQuery();

奇怪的是,当我手动选择数据库时,我可以看到该行已在几秒钟内成功创建,而执行仍然挂起。

select top 1 * from [Actions].[ItemFichier]
order by IdItemFichier DESC

我调用的存储过程非常简单:只需在表中插入一个,而不需要任何逻辑。当我在SSMS中手动运行插入时 通过SQL profiler可以获得的副本,几乎可以立即执行。

这个问题可能是什么原因?

编辑:添加了数据库呼叫代码

byte[] data = null;

MemoryStream target = new MemoryStream();
fichier.InputStream.CopyTo(target);
data = ImageHelper.ScaleImage(target.ToArray(), 1024, 1024);


var objParametre = new{
                            FichierNom = fileName,
                            MimeType = mimeType,
                            Extension = ext,
                            IdAction = idAction,
                            IdVariance = idVariance,
                            FichierParentItemType = paramFichierParentItemType,
                            IdParentTemp = idParentTemp
                        };
using (SqlCommand cmd = AppUTrakk.Current.SqlHelper.CreateCommand("Actions.pAddSetItemFichier", objParametre))
{
    cmd.CommandTimeout = 180;
    cmd.Parameters.Add("@FichierBinary_IN", SqlDbType.VarBinary, -1).Value = data;
    cmd.ExecuteNonQuery();                           
}

AppUTrakk.Current.SqlHelper.CreateCommand只是用一些默认参数创建SqlCommand / connection,而fichier是一个HttpPostedFileBase。

0 个答案:

没有答案