完全なエラーは次のようになります。
パスが無効です。データベースのディレクトリを確認してください。[パス=C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ Externals
私は次のことを行っています。ローカルデータベースを作成しました。DataGridにバインドして接続するには、このチュートリアルに基づいて、ObjectDataProviderを使用してデザイナーでデータを編集できるようにしました。トップレベルに「Externals」というフォルダーを作成しました。プロジェクトツリー。database.sdfファイルとdataSet.xsdファイルがあります。これで、これを行うUserControlができました。
<UserControl xmlns:local="clr-namespace:TypeAppRelease.Sasmaster.Data"
x:Class="TypeAppRelease.controls.AdminPageControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="700" d:DesignWidth="900" >
<UserControl.Resources>
<ObjectDataProvider x:Key="AlphaBetProvider" ObjectType="{x:Type local:AlphaBetDataProvider}" />
<ObjectDataProvider x:Key="AlphaBet" ObjectInstance="{StaticResource AlphaBetProvider}" MethodName="GetAlphaBet" />
</UserControl.Resources>
次に、コントロールの後半で、データをDataGridに挿入します。
<Grid Background="#FFE5E5E5" HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" Height="111" DataContext="{Binding Source={StaticResource AlphaBet}}">
<DataGrid Name="grdEmployee" ItemsSource="{Binding}"/>
</Grid>
最後に、カスタムアダプタクラスがあります。
namespace TypeAppRelease.Sasmaster.Data
{
class AlphaBetDataProvider
{
AlphaBetErrorTableTableAdapter adapter;
_MyDatabase_1DataSet dataset;
public AlphaBetDataProvider()
{
adapter = new AlphaBetErrorTableTableAdapter();
dataset = new _MyDatabase_1DataSet();
adapter.Fill(dataset.AlphaBetErrorTable);
}
public DataView GetAlphaBet()
{
return dataset.AlphaBetErrorTable.DefaultView;
}
}
}
どういうわけか、この行でそのエラーが発生している間:
<ObjectDataProvider x:Key="AlphaBetProvider" ObjectType="{x:Type local:AlphaBetDataProvider}" />
プロジェクトはコンパイルされて実行され、datagridのデータが表示されますが、チュートリアルのようにDatGridを編集できず、プログラムがそのパスにアクセスしようとしている理由がわかりません。