Tôi có một chức năng mà tôi nghĩ rằng tôi đã sửa cảnh báo CA2000 trong Phân tích Mã, nhưng nó sẽ không biến mất. Cảnh báo là trên SqlCommand. Đây là chức năng:C# Mã Phân tích CA2000
protected internal void LogUserSession(int? managerID)
{
using (var sqlCommand = new SqlCommand())
{
sqlCommand.SetCommand("usp_UserActivity_Create");
SqlParameter prmSessionID = new SqlParameter();
prmSessionID.ParameterName = "@sessionID";
prmSessionID.Direction = ParameterDirection.Input;
prmSessionID.SqlDbType = SqlDbType.VarChar;
prmSessionID.Size = 32;
prmSessionID.SetValue(SessionID);
SqlParameter prmUsername = new SqlParameter();
prmUsername.ParameterName = "@username";
prmUsername.Direction = ParameterDirection.Input;
prmUsername.SqlDbType = SqlDbType.VarChar;
prmUsername.Size = 32;
prmUsername.SetValue(Username);
SqlParameter prmLoginID = new SqlParameter();
prmLoginID.ParameterName = "@loginID";
prmLoginID.Direction = ParameterDirection.Output;
prmLoginID.SqlDbType = SqlDbType.Int;
sqlCommand.Parameters.Add(prmSessionID);
sqlCommand.Parameters.Add(prmUsername);
sqlCommand.Parameters.Add(prmLoginID);
using (sqlCommand.Connection = new SqlConnection(ConnectionStrings.MainApp))
{
sqlCommand.Connection.Open();
sqlCommand.ExecuteNonQueryTryCatch();
if (prmLoginID.Value != DBNull.Value) LoginID = Convert.ToInt32(prmLoginID.Value);
}
}
}
Tôi có một chức năng khác đối với tôi trông không khác biệt nhưng không có cảnh báo CA2000 liên quan đến nó. Đây là chức năng:
public static bool IsAvailable(string username)
{
using (var sqlCommand = new SqlCommand())
{
sqlCommand.SetCommand("usp_UsernameIsAvailable");
var prmUsername = new SqlParameter();
prmUsername.ParameterName = "@username";
prmUsername.Direction = ParameterDirection.Input;
prmUsername.SqlDbType = SqlDbType.VarChar;
prmUsername.Size = 32;
prmUsername.SetValue(username);
var prmReturnValue = new SqlParameter();
prmReturnValue.ParameterName = "@returnValue";
prmReturnValue.Direction = ParameterDirection.ReturnValue;
prmReturnValue.SqlDbType = SqlDbType.Bit;
sqlCommand.Parameters.Add(prmUsername);
sqlCommand.Parameters.Add(prmReturnValue);
using (sqlCommand.Connection = new SqlConnection(ConnectionStrings.ComplianceApps))
{
sqlCommand.Connection.Open();
sqlCommand.ExecuteNonQueryTryCatch();
return Convert.ToBoolean(prmReturnValue.Value);
}
}
}
Tôi không hiểu điều gì đang xảy ra ở đây và những gì tôi cần làm để khắc phục.
SessionID là gì, vì tò mò? Có phải đó chỉ là một thuộc tính chuỗi của lớp mà phương thức này là từ? –
Tôi không nhận được cảnh báo cho mã của bạn bằng phân tích mã 'Microsoft All Rules'. – Phil
SessionID là ID được tạo từ phiên mà người dùng mở khi nhấn vào ứng dụng. Đó là tham chiếu đến phiên thực tế của người dùng. – Chris