0

Visual Studio 2010でac#プロジェクトを作成しました。これには、データベース接続が含まれています。問題は、正しく実行されるプロジェクトを実行するとき、およびexeファイルとdllファイル、およびすべてのファイルをbin / debugフォルダーからコピーして、別の場所に配置するときです。そして、c#プロジェクトであったプロジェクトを削除し、フォームが正しく開いているexeファイルを実行しようとしますが、データベースフォームを開くと、これでエラーが発生します

パスが無効です。データベースのディレクトリを確認してください。
[パス=E:\ WindowsFormsApplication1 \ WindowsFormsApplication1 \ Database1.sdf]

それは私がc#コードで書いたディレクトリをまだ取ります。

上記のエラーでエラーが発生している2番目の形式では、このコードを記述しましたが、ファイルパスは接続文字列と同じであり、エラーが発生しています。同じフォルダからパスを取得する場合にこれが発生するのはなぜですか?別のコンピュータでプロジェクトを実行するにはどうすればよいですか?

     connectionString = @"E:\WindowsFormsApplication1\
    WindowsFormsApplication1\Database1.sdf";
                sqlConnection = new SqlCeConnection(connectionString);
                selectQueryString = "SELECT * FROM table2";
                sqlConnection.Open();
                sqlDataAdapter = new SqlCeDataAdapter(selectQueryString,
 sqlConnection);
                sqlCommandBuilder = new SqlCommandBuilder(sqlDataAdapter);
                dataTable = new DataTable();
                sqlDataAdapter.Fill(dataTable);
                bindingSource = new BindingSource();
                bindingSource.DataSource = dataTable;
                dataGridView1.DataSource = bindingSource;
4

1 に答える 1

2

ステップ 1 : プロジェクトにまだ含まれていない場合は、app.config追加します。

  • Solution Explorerで、プロジェクトに移動します
  • 次に、コンテキストメニューから選択しますAdd > New Item
  • Generalテンプレートに移動して選択しますApplication Configuration File

ステップ 2 : 接続文字列 (ファイルへのパスを含む.sdf) をその構成ファイルに入れます。

  • app.configステップ1で取得した新しいファイルを開きます
  • <configuration> ..... </configuration>タグ内に次の行を追加します。

    <connectionStrings>
        <add name="SomeNameHere" 
             connectionString="E:\WindowsFormsApplication1\WindowsFormsApplication1\Database1.sdf"/>
    </connectionStrings>
    

ステップ 3:プログラムで、その構成から接続文字列を読み取ります。

connectionString = ConfigurationManager.ConnectionStrings["SomeNameHere"].ConnectionString;

ステップ 4:アプリを新しいコンピューターにコピーするときは、必要に応じて構成ファイルでそのパスを調整します

于 2013-01-28T17:22:38.677 に答える