제목 : 예제. DataTable 클래스의 Select() 메서드를 사용한 데이터 필터링 및 정렬
글번호:
|
|
123
|
작성자:
|
|
레드플러스
|
작성일:
|
|
2005/04/20 오후 5:17:00
|
조회수:
|
|
7642
|
// CategoryAdd.aspx에서 발췌
private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
// 커넥션
SqlConnection objCon = new SqlConnection(
ConfigurationSettings.AppSettings["ConnectionString"]);
// 커멘드
SqlCommand objCmdSelect = new SqlCommand(
"Select * From Categories", objCon);
SqlCommand objCmdUpdate = new SqlCommand(
"Update Categories Set CategoryName = @CategoryName Where CategoryID = @CategoryID", objCon);
// 파라미터
objCmdUpdate.Parameters.Add("@CategoryName", SqlDbType.VarChar, 50, "CategoryName");
objCmdUpdate.Parameters.Add("@CategoryID", SqlDbType.Int, 4, "CategoryID");
// 데이터어댑터
SqlDataAdapter objDa = new SqlDataAdapter();
objDa.SelectCommand = objCmdSelect;
objDa.UpdateCommand = objCmdUpdate;
// 데이터셋
DataSet objDs = new DataSet();
objDa.Fill(objDs, "Categories");
// 데이터테이블 : DataTable에서 필터링
DataTable objDt = objDs.Tables["Categories"];
// 데이터로우 : DataTable 클래스의 Select() 메서드는 DataRows 배열을 반환한다.
DataRow [] objDr = objDt.Select("CategoryID = "
+ DataGrid1.DataKeys[e.Item.ItemIndex].ToString(), "CategoryID Asc", DataViewRowState.CurrentRows);
// 업데이트
if(objDr.Length > 0)
{
objDr[0]["CategoryName"] = ((TextBox)e.Item.Cells[1].Controls[0]).Text;
objDa.Update(objDs, "Categories");
}
DataGrid1.EditItemIndex = -1;
ReadData();
}