0

私の目標は、郵便番号または市外局番をテキストボックスに入力すると、別のテキストボックスにその郵便番号/市外局番の都市と州が表示されることです。two を使用してこれが機能する方法がありますがDictionaries、最初に約 15 秒の貸し出し時間があり、RAM 使用量が約 10 倍になります。最善の解決策ではありません。そのため、SQLite を使用して、代わりにデータベース ファイルを使用しようとしています。開発用コンピューターではすべてが完全に機能しますが、他のコンピューターに転送すると、いくつかの異なるエラーが発生します。

1 つ目は「sqlite3.dll が見つかりません」でした。これは修正したと思いますが、今日仕事に着くまで確信が持てません。しかし、どちらもsqliteがインストールされていないため、子供のコンピューターと妻のラップトップでも試しました。

私が受け取った例外の 1 つは、データベースを開くことができないというものでした。これは私の妻のラップトップで、iTunes がインストールされていて、sqlite を使用していると思われるので、既に dll ファイルを持っている可能性があります。

もう一方 (子供のコンピューター) は、テーブルZipCodesが存在しないと言いました。

以下にテーブルの初期化を貼り付けました。ほとんどの場合、これは DataSet を追加したときに VS によって自動的に生成されたものです。ファイルについてですが、パソコン間で転送しているフォルダに入っているのはLocations.db3System.Data.SQLite.dllSystem.Data.SQLite.Linq.dllです。.NET 4.0 および x64 用に設計されたパッケージである SQLite の最新バージョンを使用しています。

私はこれについて助けを求めてあらゆる場所を探しましたが、ロード時間を長くしても構わないと思っているところまで真剣に取り組んでいます。

public void InitializeDB()
    {
        try
        {
            locationsDataSet = ((LocationsDataSet)App.Current.MainWindow.FindResource("locationsDataSet"));

            locationsDataSetZipCodesTableAdapter = new LocationsDataSetTableAdapters.ZipCodesTableAdapter();
            locationsDataSetAreaCodesTableAdapter = new LocationsDataSetTableAdapters.AreaCodesTableAdapter();

            locationsDataSetZipCodesTableAdapter.Fill(locationsDataSet.ZipCodes);
            locationsDataSetAreaCodesTableAdapter.Fill(locationsDataSet.AreaCodes);

            zipCodesViewSource = ((CollectionViewSource)(this.FindResource("zipCodesViewSource")));
            areaCodesViewSource = ((CollectionViewSource)(this.FindResource("areaCodesViewSource")));

            zipCodesViewSource.View.MoveCurrentToFirst();
            areaCodesViewSource.View.MoveCurrentToFirst();
        }
        catch (Exception ex)
        {
            MessageBox.Show("Database failed to load with exception " + ex.ToString());
        }
    }

XAML

<Window.Resources>
    <main:LocationsDataSet x:Key="locationsDataSet" />
    <CollectionViewSource x:Key="areaCodesViewSource" Source="{Binding Path=AreaCodes, Source={StaticResource locationsDataSet}}" />
    <CollectionViewSource x:Key="zipCodesViewSource" Source="{Binding Path=ZipCodes, Source={StaticResource locationsDataSet}}" />
</Window.Resources>
4

0 に答える 0