1
adapter.fill 기술을 사용하지 않는 Datatable을 반환하고자합니다.adapter.fill을 사용하지 않고 데이터베이스 테이블에서 데이터 테이블을 반환하는 방법
internal DataTable ConnectedSelect(string TableName, string[] Cols, string Condition)
{
DataTable dt = new DataTable();
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString))
{
con.Open();
using (SqlCommand cmd = new SqlCommand(GenerateSelectStatment(TableName, Cols, Condition),con))
{
SqlDataReader rdr = cmd.ExecuteReader();
object[] temp = new object[rdr.FieldCount];
while (rdr.Read())
{
rdr.GetValues(temp);
dt.Rows.Add(temp);
}
}
}
return dt;
}
}
문제가 발생합니다. 입력 배열이이 표에서 col 수보다 깁니다. 테이블에 4 개의 열이 있습니다. 무엇이 문제입니까? rows.add는 입력과 동일한 4 개의 요소가있는 행을 추가해야합니다.
달콤한 작품 : 것
DataTable
전체 코드의
load
방법을 사용하지만 어떻게 코드에서 루프가없는 올 수 있습니까? – AngelicCoredt.Load (rdr)는 모든 판독기 값을 DataTable에 삽입합니다. 이 경우 루프가 필요하지 않습니다. –
그러나 한 번에 한 행만 반환하는 리더는 없습니까? dt.load가 모든 행을 반환하도록 강요합니까? – AngelicCore