在如家酒店做项目时,他们请微软来开讲座时,提到的我们项目中对SqlDataReader和SqlDateAdapter之间的区别。
SqlDataReader比SqlDataAdapter使用效率高很多,因此将其修改。下面是修改方法:
SqlDataAdapter的使用方法
SqlDataAdapter sda = new SqlDataAdapter(cmd); ds = new DataSet(); sda.Fill(ds);
SqlDataReader的使用方法
reader = cmd.ExecuteReader();
do{
ds = new DataSet();
dt = new DataTable();
int fieldCount = reader.FieldCount;
for (int i = 0; i < fieldCount; i++)
{ //防止重复列名
string colName = reader.GetName(i);
if (dt.Columns.Contains(colName))
{
dt.Columns.Add(colName + DateTime.Today.ToString("yyMMdd") + i, reader.GetFieldType(i));
}
else {
dt.Columns.Add(colName, reader.GetFieldType(i));
}
}
dt.BeginLoadData();
object[] objectValue = new object[fieldCount];
while (reader.Read())
{
reader.GetValues(objectValue);
dt.LoadDataRow(objectValue, true);
}
dt.EndLoadData();
ds.Tables.Add(dt);
ds.CaseSensitive = true;
} while (reader.NextResult());