1つの列がタイプURIとして指定されているデータテーブルを作成しました。これは後で、テーブルをWPFのグリッドにバインドするためのソースとして使用し、ハイパーリンクを使用してグリッド列を自動生成するためです。このデータテーブルをSQL Serverデータベースからどのように埋めることができますか?SQLのURIデータ型列を使用してデータテーブルをどのように埋めることができますか?
はここに私のサンプルコードです: -
_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として認識されていないので、最後の充填文が失敗したということです。私はデータアダプターにデータを変換するよう説得することができますか?
[私はdatatableを単にフィールドのテキストを使用して、私のWPF Xamlで明示的に列をフォーマットすることになりますが、自動生成された列を使用したいと思います。データをデータテーブルに入れる]
SQL、データテーブル、エラー処理ロジック自体のデータの順序付けに依存するため、あまりエレガントではないので、最初に列を自動生成する点を多少弱めてしまい、テーブル構造変更することができますが、多少一般的にする方法があります。また、すべての行でエラーが発生することを期待している場合は、それは本当に良いデザインですか?しかし、少なくとも可能な解決策です... – DMFW