adapter.fill 手法を使用せずに Datatable を返したいです。
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;
}
}
問題は、入力配列がこのテーブルの列の数よりも長いことです。テーブルには 4 つの列があります。何が問題なのですか? rows.add は、入力と同じ 4 つの要素を持つ行を追加する必要があります。