2009-06-18 5 views
2

Lorsque je tente d'ajouter une nouvelle source de données à mon projet je reçois un message disant: « La connexion que vous avez sélectionné utilise un fichier de données local qui ne fait pas partie du projet en cours. Voulez-vous copier le fichier sur votre projet et modifier la connexion?"Comment les sources de données sont-elles liées dans les applications Visual Basic .NET compilées?

Cela me semble assez obscur, car je suis nouveau sur VB.NET et la programmation d'applications non-script en général. La source de données dans ce cas est un fichier .sdf SQL CE.

Question 1: Si je dis que je veux copier la base de données du projet, ce qui se passera après l'application je compile, où la base de données sera? (Comment vais-je le modifier d'une autre application?)

Question 2: Si je ne comprends pas, comment la source de données sera toujours garder lié? Puis-je créer un lien en utilisant des variables de enviroiment de système de fichiers comme % ProgramFiles% \ MyAppDir? Question 3: Puis-je simplement lui dire d'utiliser une source de données en lecture seule (juste besoin de le lire) sur le web, comme sur un FTP?

Merci de votre aide à l'avance! =)

Répondre

2

Visual Studio essaie juste d'avoir tous vos fichiers en un seul endroit, avec le reste d'entre eux - dans le dossier du projet.

Q1 - base de données SQL Ce peut être partout où vous le souhaitez, vous utilisez la section Paramètres connectionStrings dans votre app.settings. SQL Ce n'est qu'un fichier, rien de plus, rien de moins, donc accessible depuis n'importe quelle application. N'est pas compilé dans votre application, il voyage juste avec quand vous déployez, etc.

Pour répondre Q2 - vous pouvez probablement, mais je ne suis pas sûr que cela fonctionnera automatiquement pour vous.

Q3 - à lire à partir de ftp, probablement pas, à moins que vous ne preniez en charge le support client ftp dans votre application et que vous le téléchargiez en arrière-plan. Une autre solution consisterait à mapper ftp au lecteur local et à y accéder à partir de là.

Par exemple, le stockage chaîne de connexion dans app.config (extrait de app.config):

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

plus tard dans votre application, vous accédez à cette chaîne de connexion comme ceci: (ajouter une référence à System.Configuration

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 - mais où il doit rester après la compilation de l'application, dans le même répertoire? (par exemple ". \ file.sdf") Si je peux faire un paramètre dans quelque chose comme un fichier .ini serait idéal. puis-je? –

+0

Non, il ne doit pas être dans le même répertoire. Le paramètre peut être n'importe où, même dans un fichier ini, une clé de registre ou une configuration d'application, puisque vous spécifiez dans votre chaîne de connexion le chemin d'accès au fichier. – Vnuk

Questions connexes