0

我想知道是否有任何方法可以直接从 SQL 服务器填充 ObservableCollection。目前我正在将我的数据加载到 DataTable 中(使用 sqlDataAdapter)并手动转换为 ObservableCollection,但效率非常低。

怎么做?

4

1 回答 1

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;
}
于 2013-01-06T17:07:10.803 回答