안녕하세요 마블랑입니다.
얼마전에 C# 프로그램을 개발하던 중에 Mysql의 blob 컬럼에 이미지를 삽입하는 기능을 구현한 적이 있습니다.
이미지를 삽입했을때는 문제업이 잘 되었지만
blob 컬럼이 NOT NULL 이 아닌 관계로 이미지가 없을경우 에러가 발생하더군요
에러를 처리하기 위해 이런저런 방법을 시도해보고 하였지만 기존에 문자열 컬럼을 에러처리하는 방법으로는 처리가 되지 않더군요.
그래서 좀더 자료를 찾고 확인해보고 결국에는 해결을 하였습니다.
MySqlCommand cmd = new MySqlCommand(Sql, conn);
MySqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
if (!(rdr["PHOTO"].Equals(System.DBNull.Value)))
{
byte[] Image = (byte[])rdr["PHOTO"];
if (bImage.Length > 0)
pb_photo.Image = new Bitmap(new MemoryStream(Image));
else
pb_photo.Image = null;
}
}
rdr.Close();
코드를 간단하게 하기위해 Mysql에 접속하는 부분과 쿼리문은 생략하고 데이터를 가져오는 부분만 표시하였습니다.
반복문 안에 조건문을 이용하여 에러를 검출할수 있습니다.
rdr["PHOTO"].Equals(System.DBNull.Value))
System.DBNull.Value 은 DB에서 가져온값이 NULL을 나타내고 이것과 비교하여 데이터가 있는지 없는지 검사를 하는 구문입니다.
blob는 기존에 에러처리를 하듯이 rdr["PHOTO"].ToString() == "" 으로 검사해도 되지 않았기 때문에 위 코드와 같이 변경하여 사용하면 될듯합니다.
자세한 사항은 코드를 참고하시기 바랍니다.
이상 마블랑이었습니다.
읽어주셔서 고맙습니다.
'개발 이야기 > C# 이야기' 카테고리의 다른 글
C# MySqlConnection 사용하여 Mysql 접속하기 (ODBC를 등록하지 않고 DB 사용, MySqlCommand, MySqlDataReader, MySqlCommand) (0) | 2019.06.18 |
---|---|
C# 객체 생성 함수 사용 (Class, static) (0) | 2019.06.18 |
C# datetimepicker 날짜계산 (휴가일수를 계산하기 위한 토요일, 일요일 제외) (0) | 2019.06.13 |
[C#] 메시지박스 (MessageBox Class, 샘플예제 첨부) (305) | 2018.12.25 |
[빅데이터] R.Net을 C#과 연동하여 빅데이터 그래프 그리기 (3편 MSChart로 빅데이터 시각화하기) (8) | 2018.11.19 |
댓글