dataGridView 에서 작업한 것을 수정한 결과를 Update 하는 코드이다.
여러개의 자료를 수정한 경우 신규 수정인지 기존 자료 수정인지 검사하는 로직이 구현되어 있다.
private void btnSave_Click(object sender, EventArgs e)
{
int UpdateCnt = 0; int ModifiedCnt = 0;
myConn = new MySqlConnection(GetConnectionString());
if (myConn.State == ConnectionState.Closed)
{
myConn.Open();
DBstatus.Text = "ON";
}
try
{
foreach (DataGridViewRow row in this.dataGridView1.Rows)
{
string uid = row.Cells["uid"].Value.ToString();
string str1 = row.Cells["content"].Value.ToString();
string str2 = row.Cells["code"].Value.ToString();
string d_regis = DateTime.Now.ToString("yyyyMMddHHmmss");
if (str1 == null || str1.Equals("")) { continue; } // 수정이 없을 경우
else if (str2 == Convert.ToString(0)) // 신규 수정
{
string strqry = "UPDATE data SET code='" + f2.getCode + "', content='" + str1.Trim() + "', d_modify='" + d_regis + "' Where uid =" + uid;
MySqlCommand cmd = new MySqlCommand(strqry, myConn);
cmd.ExecuteNonQuery();
UpdateCnt++;
cmd.Dispose();
}
else if (str2 == Convert.ToString(f2.getCode)) // 등록자와 동일한 것만 수정여부 검사
{
string strqry = string.Format("SELECT count(*) FROM data WHERE uid='{0}' and content='{1}'",uid, str1);
MySqlCommand cmd = new MySqlCommand(strqry, myConn);
cmd.CommandType = CommandType.Text;
int RowCount = Convert.ToInt32(cmd.ExecuteScalar());
cmd.Dispose();
if (RowCount == 0)
{
strqry = "UPDATE data SET code='" + f2.getCode + "', content='" + str1.Trim() + "', d_modify='" + d_regis + "' Where uid =" + uid;
MySqlCommand cmb = new MySqlCommand(strqry, myConn);
cmb.ExecuteNonQuery();
ModifiedCnt++;
cmb.Dispose();
}
}
}
GetAllItems(); //Refresh grid
MessageBox.Show(UpdateCnt + "건 Updated " + ModifiedCnt + "건 수정 되었습니다...");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
if (myConn.State == ConnectionState.Open)
{
myConn.Close();
DBstatus.Text = "OFF";
}
}
}
'C# > C# SQL' 카테고리의 다른 글
입문자를 위한 C# 과 MySQL 연동 방법 설명 (1) | 2016.11.24 |
---|---|
C# MySQL 엑셀로 내보내기 (0) | 2016.08.28 |
C# dataGridView CSV 파일로 저장 (0) | 2016.01.29 |
C# MySqlDataReader Format (0) | 2016.01.28 |
C# SQLite 데이터 삭제 (transaction 반영) (0) | 2016.01.14 |