데이터베이스 서버가 다른 위치에 있고 연결 속도가 느리기 때문에 레코드를 가져와야 할 때가 있습니다. 레코드를 가져 오는 데 약간의 시간이 걸리므로 레코드가 얼마나 많이 다운로드되었는지 알고 싶습니다. .데이터 테이블 채우기 진행 진행
public DataTable fillMyDataTable(string sQuery)
{
SqlDataAdapter myDataAdapter;
SqlCommandBuilder mySqlCommandBuilder;
DataTable dataTable;
myDataAdapter = new SqlDataAdapter(sQuery, this.connection);
mySqlCommandBuilder = new SqlCommandBuilder(mySqlDataAdapter);
myDataAdapter.SelectCommand.CommandTimeout = 240;
dataTable = new DataTable();
mySqlDataAdapter.Fill(dataTable);
return dataTable;
}
이 난 이상에서 메소드를 호출하는 방법이다 :
이
는 데이터 테이블 작성 방법이다 DataTable에 DT = DataTable의 새로운();private void FillData()
{
string sql = "SELECT Id, Code, Desc FROM myTable";
dt.RowChanged += new DataRowChangeEventHandler(this.dt_RowChanged);
dt = fillMyDataTable(sql);
dt.AcceptChanges();
}
void dt_RowChanged(object sender, DataRowChangeEventArgs e)
{
if (e.Action == DataRowAction.Add)
{
Console.WriteLine("Current no. of rec.: " + dt.Rows.Count.ToString());
}
}
출력은 1904 개의 2100 레코드와 같아야합니다. 문제는 dt_RowChanged 이벤트가 발생하지 않는다는 것입니다. 그렇게하는 방법?
업데이트! 위의 코드는 dt_RowChanged 이벤트가 발생할 때까지 작동하며 dt 객체도 레코드로 채워집니다.
어때'dt.Rows.Count' – artm