C# 에서 MySQL 구문과 연동처리하는 부분에서 좀 고생을 해서 적어둔다.
MySQL 칼럼에 인덱스를 걸어야 속도가 빠르지만, 칼럼에 변형을 가해서 인덱스 무시하고 처리했다.
substring(d_modify,1,8)='" + DateTime.Now.ToString("yyyyMMdd") + "'
MySQL d_modify 칼럼은 변경된 날짜를 기록하는 칼럼인데 php 에서 값을 저장할 때 varchar(14) 로 날짜의 형식을 일반적인 php 날짜 형식과 약간 다르게 yyyyMMddHHmmss 로 저장된다.
연도,월,날짜,시,분,초를 구분자 없이 14자리를 저장한다.
오늘 날짜(년월일) yyyyMMdd 8자리만 MYSQL substring 함수를 이용하였다.
MySQL 칼럼은 string(문자열) 인 경우에는 d_modify ='값' 으로 처리한다.
여기에 C# 에서 입력되는 변수를 적용하려면 " + 입력값 + " 를 ' ' 사이에 넣어준다.
dataGridView 화면 내부에서 직접 자료를 갱신하는 경우가 아니라 외부의 값을 넣어야 하는 부분을 몰라 고생을 좀 했다.
content 칼럼을 업데이트하는 부분과 d_modify 칼럼을 업데이트하는 부분을 서로 다르게 처리한다.
[2] 와 같이 해주거나, ["@d_modify"] 해줘야 제대로 동작된다.
["d_modify"] 이런식으로 하면 에러가 발생한다.
// Set the UPDATE command and parameters.
d_modify_value = DateTime.Now.ToString("yyyyMMddHHmmss");
adapter.UpdateCommand = new MySqlCommand(
"UPDATE data SET content=@content,d_modify=@d_modify WHERE uid=@uid;", myConn);
adapter.UpdateCommand.Parameters.Add("@uid", MySqlDbType.Int16, 11, "uid");
adapter.UpdateCommand.Parameters.Add("@content", MySqlDbType.VarChar, 255, "content");
adapter.UpdateCommand.Parameters.Add("@d_modify", MySqlDbType.VarChar, 14);
adapter.UpdateCommand.Parameters[2].Value = d_modify_value; // 외부 값을 저장
adapter.UpdateCommand.UpdatedRowSource = UpdateRowSource.None;
'C# > C# SQL' 카테고리의 다른 글
C# DataSet (6) | 2015.12.20 |
---|---|
C# MySQL 간단 코드 및 접속 기본지식 배우기 (0) | 2015.12.04 |
C# 콤보박스(comboBox) 와 SQL 연동 (0) | 2015.09.10 |
C# 과 MySQL 연동 (0) | 2015.08.29 |
C# ExecuteScalar 와 총 Record 수 (0) | 2015.08.27 |