QnA
|
사용언어 (칠해주세요) => (C#) |
|
사용툴 (VS) : |
|
운영체제 (OS) : |
|
상세언어(칠해주세요.) => 1) ASP.NET, 2) ASP.NET MVC, 3) ASP.NET AJAX |
public int updateListAssin(string[] listNo, int List_sgroup_no)
{
int updateResult = 0;
DAL dal = new DAL();
try
{
using (TransactionScope scope = new TransactionScope())
{
using (SqlConnection connection = dal.Connect())
{
SqlParameter[] sqlParameter = new SqlParameter[2];
for (int i = 0; i < listNo.Length; i++)
{
sqlParameter[0] = new SqlParameter("@listNo ", DbType.String);
sqlParameter[1] = new SqlParameter("@List_sgroup_no", DbType.Int32);
sqlParameter[0].Value = listNo[i];
sqlParameter[1].Value = List_sgroup_no;
//updateResult += dal.ExecuteStoredProcedure("sp_tbl_contact_setting_update", connection, sqlParameter);
}
updateResult += dal.ExecuteStoredProcedure("sp_tbl_list_AssignOK_update", connection, sqlParameter);
//updateResult += updateContactSettingItem(dal, connection, contactSettingNo, contactCheckValue, contactSurveyNo, attachFile, attachUrlText);
}
scope.Complete();
}
}
catch (Exception ex)
{
updateResult = -1;
}
return updateResult;
}
첫댓글 SqlParameter[] sqlParameter = new SqlParameter[2];
이걸 for문 안에 써보시길.. 그리고 dal.ExecuteStoredProcedure("sp_tbl_list_AssignOK_update", connection, sqlParameter); 이것도 for문 안에 잇어야 할듯합니다..
아 그리고 connection 이놈이 open()인지 아닌지 체크 해야할것 같은데요. connection.Open() 한 다음에 하셔야해요..
finally 쓰신다음에 connection.ConnectionState가 Open 이면 닫아야 하구요..
잘못한거 많으신거 같은데요.ㅋ
db 의 open 구문만 넣으면 될듯 싶어요. 다른건 알아서 using 문이 처리해 줄겁니다.
잉? ExecuteStoredProcedure 이거 했어.. 그런대 에러가 낫어. 그래서 catch로 빠지고 Finally로 떨어져도.. 자동으로 close() 해줘?? 난 이거 Finally에 쓰라고 쓴건데.. 음... using문을 그리 자주 안 써봐서 그런가.. 해제 했다고 해서 close하는건 아니지 않나?
using 문 한번 카페에 강좌 올린게 있을거양. 카페에서 검색해방 ^^*
혹시나해서 쓰는건데요 Open 하고 ExecuteStoredProcedure 하고 나서 connection.Close() 하셔야 합니다.
using 문을 사용하였으니 close 문은 자동적으로 처리해 주므로 기재 하지 않아도 됩니다.
그렇구나. 안해줘도 돼는구나.. 그래도 난 해줄래..C#을 믿느니 내 코드를 믿겟어요 후후후 (절대 안 질려고 객기 부리는 퓨전..ㅋㅋ)
조금 더 정확히 말씀드리자면 using 블록은 IDisposable 인터페이스를 구현한 객체에 한해 Dispose() 메서드를 자동으로 호출해주는 역할을 합니다. 따라서 SqlConnection의 경우도 Close가 아니라 Dispose를 호출하게 되어 있으며 이 Dispose 메서드에서 Close를 한 번 더 호출해 주기 때문에 결과적으로 DB 연결이 닫히게 됩니다.ㅡ지니행님 왈 ㅎㅎ