在使用SQLHelper类执行更新存储过程时,我遇到了问题。我在SQLHelper.ExecuteNonQuery中使用SQLHelper.ExecuteNonQuery作为参数。
这是我的密码:
// Create SQLTransaction
public bool Delete()
{
SqlConnection oConn = tsoDAL.OpenConnection();
SqlTransaction oTrans = oConn.BeginTransaction();
try
{
if (Delete(oTrans))
{
oTrans.Commit();
return true;
}
else
{
oTrans.Rollback();
return false;
}
}
catch (SqlException ex)
{
oTrans.Rollback();
throw (ex);
}
finally
{
tsoDAL.CloseConnection(ref oConn);
}
}
// Call SQLHelper
public bool Delete(SqlTransaction p_oTrans)
{
try
{
SqlParameter[] oParams = new SqlParameter[1];
oParams[0] = new SqlParameter("@p_iSalesSoId", m_iSalesSoId);
int iRowAffected = SqlHelper.ExecuteNonQuery(p_oTrans, "uspTSO_DeleteSalesOrder",oParams);
return iRowAffected >= 0;
}
catch (Exception ex)
{
throw ex;
}
}当代码在SQLHelper.cs中到达此代码时抛出一个错误
private static SqlParameter[] DiscoverSpParameterSet(string connectionString, string spName, bool includeReturnValueParameter)
{
using (SqlConnection cn = new SqlConnection(connectionString))
using (SqlCommand cmd = new SqlCommand(spName,cn))
{
cn.Open(); // error happens here
cmd.CommandType = CommandType.StoredProcedure;
SqlCommandBuilder.DeriveParameters(cmd);
if (!includeReturnValueParameter)
{
cmd.Parameters.RemoveAt(0);
}
SqlParameter[] discoveredParameters = new SqlParameter[cmd.Parameters.Count];;
cmd.Parameters.CopyTo(discoveredParameters, 0);
return discoveredParameters;
}
}显示的错误是
用户“sa”登录失败。
我在寻找这个问题的解决方案,但我仍然没有找到能够解决我的问题的解决方案。
我需要你的帮助,谢谢
发布于 2016-04-13 08:48:40
我跟踪了问题,真正的问题是SQLTransaction连接字符串丢失了密码。所以在我的连接字符串中,我添加了Persist Security Info=true;,这解决了我的问题。谢谢
https://stackoverflow.com/questions/36592483
复制相似问题