【发布时间】:2017-05-03 08:20:52
【问题描述】:
我创建了一个数据表,其中一列被指定为类型 URI。这是因为我稍后想使用该表作为绑定到 WPF 中网格的源,自动生成带有超链接的网格列。如何从我的 SQL Server 数据库中填充此数据表?
这是我的示例代码:-
_tblMarketPlaces = new DataTable("MarketPlaces");
_tblMarketPlaces.Columns.Add("MarketPlaceID");
_tblMarketPlaces.Columns.Add("MarketPlaceIdentifier");
_tblMarketPlaces.Columns.Add("MarketPlaceName");
_tblMarketPlaces.Columns.Add("MarketPlaceHomeUri",typeof(Uri));
_tblMarketPlaces.Columns.Add("DisplayPriorityOrder");
_tblMarketPlaces.Clear();
_tblMarketPlaces.Rows.Add(0, "N/A", "Unknown", DBNull.Value, 0);
SqlConnection DB = ArtContentManager.Static.Database.DBReadOnly;
string sqlSelectMarketPlaces = "Select * from MarketPlaces Order By DisplayPriorityOrder";
SqlCommand cmdSelectMarketPlaces = new SqlCommand(sqlSelectMarketPlaces, DB);
SqlDataAdapter sdaMarkePlace = new SqlDataAdapter(cmdSelectMarketPlaces);
sdaMarkePlace.Fill(_tblMarketPlaces);
问题是最后一个填充语句失败,因为 MarketPlaceHomeUri 的数据类型在数据库上是 nvarchar 并且未被识别为 URI。有什么方法可以说服 DataAdapter 转换填充数据?
[我知道另一种方法是让数据表简单地使用文本作为字段,然后在我的 WPF Xaml 中显式格式化列,但我想在那里使用自动生成的列,如果只有我可以加载数据,这似乎是可能的进入数据表]
【问题讨论】:
标签: c# sql-server datatable uri sqldataadapter