나는 이제 성능 보안 및 가능한 다른 모든 측면에 대한 내 수업을 평가하십시오 수있는 하나의 매개 변수화 된 쿼리 클래스적절한 매개 변수화 된 쿼리 클래스 SQL 서버
내 쿼리를 캡슐화하기 시작입니까?
의견이 있으십니까?
여기 내 선택 클래스
public static DataSet cmd_SelectQuery(string srCommandText, List<string> lstParameterNames, List<string> lstParameters)
{
DataSet dsCmdPara = new DataSet();
try
{
using (SqlConnection connection = new SqlConnection(DbConnection.srConnectionString))
{
using (SqlCommand cmd = new SqlCommand(srCommandText, connection))
{
cmd.CommandType = CommandType.Text;
for (int i = 0; i < lstParameterNames.Count; i++)
{
cmd.Parameters.AddWithValue(lstParameterNames[i], lstParameters[i]);
}
connection.Open();
using (SqlDataAdapter sqlDa = new SqlDataAdapter(cmd))
{
sqlDa.Fill(dsCmdPara);
return dsCmdPara;
}
}
}
}
catch (Exception E)
{
csPublicFunctions.insertIntoTblSqlErrors(srCommandText + " " + E.Message.ToString());
}
return dsCmdPara;
}
그리고 여기 내 업데이트, 삭제 클래스
public static void cmd_UpdateDeleteQuery(string srCommandText, List<string> lstParameterNames, List<string> lstParameters)
{
try
{
using (SqlConnection connection = new SqlConnection(DbConnection.srConnectionString))
{
using (SqlCommand cmd = new SqlCommand(srCommandText, connection))
{
cmd.CommandType = CommandType.Text;
for (int i = 0; i < lstParameterNames.Count; i++)
{
cmd.Parameters.AddWithValue(lstParameterNames[i], lstParameters[i]);
}
connection.Open();
cmd.ExecuteNonQuery();
}
}
}
catch (Exception E)
{
csPublicFunctions.insertIntoTblSqlErrors(srCommandText + " " + E.Message.ToString());
}
}
감사 답변
에 대한 많은
무엇 당신의 매개 변수 중 하나가 문자열이 아닌 경우? (예 :'select * from table where ID = @ tableID' 및 ID는 숫자 필드 임) – Steve
문자열 유형 대신 매개 변수를 전달하는 방법은 무엇입니까? –
필자는 분명히 패스 할 수 없다 : D 제안 클래스를 대답으로 게시 할 수있다. – MonsterMMORPG