2009-06-18 3 views
2

プロジェクトに新しいデータソースを追加しようとすると、「選択した接続では現在のプロジェクトの一部ではないローカルデータファイルが使用されます。プロジェクトにファイルをコピーして、接続?"コンパイルされたVisual Basic .NETアプリケーションでデータソースをリンクする方法は?

私はVB.NETを初め、スクリプト以外のアプリケーションを一般的にプログラミングしているので、これはあまりわかりにくいです。この場合のデータソースは.sdf SQL CEファイルです。

質問1:データベースをプロジェクトにコピーするとしたら、アプリケーションをコンパイルした後、データベースはどこに配置されますか? (別のアプリからどのように編集するのですか?)

質問2:データソースを含めないと、データソースはどのようにリンクされたままになりますか? %ProgramFiles% \ MyAppDirのようなファイルシステムの環境変数を使用してリンクできますか?

質問3:FTPなど、ウェブ上の読み取り専用データソースを使用するように伝えることはできますか?

ありがとうございました! =)

答えて

2

Visual Studioでは、すべてのファイルをプロジェクトフォルダ内の1つの場所に残り、残りの部分はすべてプロジェクトフォルダに保存します。

Q1 - SQL Ceデータベースは、好きな場所に置くことができ、app.settingsのConnectionStrings設定セクションを使用します。 SQL Ceは単なるファイルであり、他のアプリケーションからアクセスすることはできません。あなたのアプリにはコンパイルされていませんが、デプロイ時に一緒に移動します。

Q2に答えるには、おそらく可能ですが、自動的に動作するかどうかはわかりません。

Q3 - あなたのアプリにFTPクライアントサポートを行い、バックグラウンドでダウンロードしない限り、おそらくftpから読み取ることはできません。別の解決方法は、ftpをローカルドライブにマップし、そこからアクセスすることです。 は(System.Configurationへの参照を追加します。

<connectionStrings> 
    <add name="db" connectionString="Provider=Microsoft.SQLSERVER.OLEDB.CE.2.0; data source=c:SomePathToSDFfile" /> 
</connectionStrings> 

後のアプリケーションで、あなたはこのように、この接続文字列にアクセスします(App.configファイルからの抜粋)app.configを内の接続文字列を格納例えば

、 )

Dim c As Configuration.ConnectionStringSettingsCollection 
    Dim cn As SqlClient.SqlConnection 

    c = Configuration.ConfigurationManager.ConnectionStrings 
    cn = New SqlClient.SqlConnection 
    cn.ConnectionString = c.Item("db").ConnectionString 
    cn.Open() 
+0

Q1 - しかし、アプリケーションがコンパイルされた後、同じディレクトリに残る必要がありますか? (例: "。\ file.sdf").iniファイルなどのパラメータを作成することができれば理想的です。私はできますか? –

+0

いいえ、同じdirにある必要はありません。このパラメータは、接続文字列にファイルへのパスを指定するため、iniファイル、レジストリキー、またはアプリケーション構成であっても、どこでもかまいません。 – Vnuk

関連する問題