디버깅 건 부분에서 아래 사진처럼 바로 catch로 빠지면서 오류메시지가 나옵니다.
select문 안쓰고 sp호출해서 그런건가요..ㅠ아 도저히 원인을 모르겠습니다
고수님들 답변 좀 부탁드려요ㅠㅜ
Comment 4
-
사야카
2017.04.11 14:09
-
기타치는퐝동
2017.04.12 10:25
그래도 똑같이 안되네요ㅠㅜ
-
사야카
2017.04.12 11:08
제 소스랑 별 차이는 없어보이는데 프로시져 문제 아닐지요?
Hashtable ht = new Hashtable();
ht.Add("HDATE", paramHDATE);
ht.Add("HTIME", paramHTIME);
ht.Add("HORDER", paramHORDER);
string sql = "";
sql += " exec SP_XXXX @HDATE, @HTIME,@HORDER ";
DataTable dtXXX = clsDB.ExecuteDataTable(sql, ht, CommandType.Text);
public DataTable ExecuteDataTable(string strSQL, Hashtable ht, CommandType CMDType)
{
conn = new SqlConnection(basUserData.strDNS);
cmd = new SqlCommand(strSQL);
adapter = new SqlDataAdapter();
DataTable dt = new DataTable();
try
{
conn.Open();
cmd.Connection = conn;
cmd.CommandType = CMDType;
cmd.CommandTimeout = 300;
if (ht != null)
{
IDictionaryEnumerator hsEnum = ht.GetEnumerator();
while (hsEnum.MoveNext())
{
cmd.Parameters.AddWithValue(hsEnum.Key.ToString(), hsEnum.Value);
}
}
adapter.SelectCommand = cmd;
adapter.Fill(dt);
return dt;
}
catch (Exception exExact)
{
string error = exExact.Message;
throw new Exception(error, exExact);
}
finally
{
conn.Close();
}
}
-
손택수
2017.04.18 08:49
https://msdn.microsoft.com/ko-kr/library/2k2hy99x(v=vs.110).aspx
C# 에서 TransactionScope 같은거 사용하신것 아니지요?
이미지의 소스만 봐서는 SqlConnection을 어떻게 사용하고 계신지 모르겠어요.. 이전 실행에서 Commit이나 Rollback이 안된 상태에서 추가 진행하시는 것 같은데..
테스트로 SqlConnection을 분리해서 사용해 보세요.
이런 형태로 사용해 보시던지요.
using(SqlConnection connection = new SqlConnection(연결문자열))
( )
아니면 윗분 처림 try catch finally 사용해서 finally에 close 해주는 형태로 사용해 보세요.
커맨드타입을 CommandType.Text 로 해보시겠습니까?