我想知道是否有任何方法可以直接从SQL服务器填充ObservableCollection。 目前我正在将数据加载到DataTable中(使用sqlDataAdapter)并手动转换为ObservableCollection,效率非常低。
怎么做?
答案 0 :(得分:4)
好的,我找到了一种方法:
可以使用SqlDataReader完成。
public ObservableCollection<DataItem> LoadCategoriesData()
{
Command = new SqlCommand(StoredProcedure, Connection);
Command.CommandType = CommandType.StoredProcedure;
ObservableCollection<DataItem> myColl = new ObservableCollection<DataItem>();
Connection.Open();
SqlDataReader reader = Command.ExecuteReader();
while (reader.Read())
{
int mainCatID = reader.GetInt32(0);
string categoryName = reader.GetString(1);
//adding row data to observable
myColl.Add(new DataItem(mainCatID, categoryName));
}
Connection.Close();
return myColl;
}