728x90

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;



728x90

'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
블로그 이미지

Link2Me

,