Need help on replacing access db file on deployed project in visual studio 2005 - database

I have a VB based VS2005 appl developed using Access DB a few years back on Windows XP and it has been working fine until moving to Windows 7. I re-built the solution by changing to the x64 platform also at the sametime modified the Access DB a bit resulting in a new Access DB file to be included in the solution. When I debug in VS2005, I have the new version of DB residing in my project\x86\Release folder and successfully access this new version.
Problem is that once I create the solution for deployment, the deployed application kept on opening the OLD version of the access database (mdb) file. I was not able to find where is it opening the old version of DB from even after I removed the mdb from the installed folder. I have been a lot of digging and research on web and not able to find out how to solve this problem.
Can someone please help to tell me how I can have my deployed appl to open the new version of DB ?
Thanks in advance

It sounds like you are not allowing for virtualisation - do you know about this? For security reasons after XP (Vista onwards) Microsoft doesn't allow writing to the Programs folder and if it encounters an application attempting to do this makes a copy of the files trying to be written to (in your case an Access database) and places it somewhere (can't remember exactly where at the moment) hidden from casual user.
For example, if you look at the database on your Win 7 machine in the same location at your .exe file I should think you will find it is unused - and since it was installed on the machine the OS has been redirecting requests to read/write to your database to the virtualised copy it created for you.
So, first of all find this other copy (sorry I'm currently on a mac and can't remember the location) and see if that contains data that your application is creating. Then try substituting your new database (making a a copy of your old one first of course) and seeing if your application is reading/writing to it OK.
Then it is a matter of handling replacement of databases during application installation.
However, you should give serious consideration to placing your database in a location which is not virtualised!

Related

VS2019 MVC Database solution won't work on a second machine

I had created a webpage with DB access which works perfectly well on the machine I develop it. However, when I copy everything across to another machine, it fails with an error message - cannot open database xxx requested by the login. I did copy everything including the database created in the development environment and put it in the same place as the development did. What other thing I had done wrong ? Please help. In addition, when I open the solution on another machine, I cannot see the database from the SQL Server Object Explorer like what I saw on the development machine.
Problem solved ! Need to copy the database and the log file across and the used the SQL Server Manager to attach the database to the right server. After that, everything just work !!

SQL Server Express, Windows 7, Visual Studio 2017

As a .NET Desktop developer, I have a lot of experience working with various databases that are already up and running; but I'm not a DBA. I'm currently working at a company where I am ther only software guy here to build them software from scratch -- their previous enterprise-level solution was an Access database with macros and a couple forms built it. So, I basically have no one else to go to.
With that preface, how the heck do I get a database -- ANY DATABASE!!! -- added to my VS solution? I've been beating my head against this for almost 6 hours and have made zero headway. At this point, I'm ready to say, "Screw MS databases!" and start looking at MySQL or PostgreSQL or something.
The desktop application I'm developing has to work whether there is an internet connection or not, so I need a local database that installs with ClickOnce. From what I've found so far:
SQL Server [Express] 2016+ requires Windows 8 or later (a non-starter since 95% our customers are still running Windows 7)
SQL Server Compact is being deprecated and won't work past VS2013
I think LocalDB is what replaces Compact in 2016+ (?)
Okay, so I started with this tutorial:https: //learn.microsoft.com/en-us/visualstudio/data-tools/create-a-sql-database-by-using-a-designer However, trying to add a "Service-based Database" just gives me this error once: "The 'DBProviderFactories' section can only appear once per config file." I try again and get this error repeatedly: "Unable to find DbProviderFactory for type System.Data.SqlClientConnection" I've Googled both errors and all the answers that I've been able to find pertain to VS2010 or earlier and their solutions are either not applicable or don't work.
Next, I tried this tutorial: https://msdn.microsoft.com/en-us/library/aa983322.aspx I've tried adding new data connections through the "Server Explorer" panel. I don't see "[*] Compact" as an option. When I try "Microsoft SQL Server Database File", I just get the error: Unable to find the requested .Net Framework Data Provider. It may not be installed."
I've even tried adding data sources through the "Data Sources" panel; that doesn't work either.
I've installed the "Data storage and development" addon from the Visual Studio Installer, several versions of SQL Server 2014, SQL Server Compact 4.0, and maybe a few other executables from Microsoft's website.
Nothing works.
Help...
I think I just found it!
Evidently, there are "machine.config" files on your computer. Search for them all, and make sure that there is only a single tag for "DbProviderFactories". I can add a database object now. Hopefully, this puts me in business...
https://social.msdn.microsoft.com/Forums/vstudio/en-US/7b4f353b-77fd-427c-976b-5968abc88c13/visual-studio-2010-unable-to-find-the-requested-net-framework-data-provider-for-sql?forum=vseditor
If what you are saying is that you are writing a browser based application - then one would migrate the tables to SQL Server (Express) or even MySQL - it really doesn't matter. Then write a new web app. The existing Access app would serve as a model for seeing features & screen layout but is otherwise not portable.
On the other hand, if you are re-writing a Windows application; then the decision is whether the payload requires a server solution or if one can stay at the PC level. If the payload is suitable for PC then a re-write using either Visual Studio or Access again.
Access is a front end db - the tables in the back end whether they be stored in SQL Server or an Access file are entirely passive. All the processing is done by the user's PC. If the payload allows that then this is the lowest cost re-write option.
If you've outgrown a PC level payload - then one must develop a back end database feature set with a more passive front end.

Visual Studio Published Project Crashing when trying to access Database files

This is the biggest problem I've had with my project so far. Every time I try to publish it, I get hangups and crashes whenever the project tries to access a database file (which is fairly often).
I have two database objects, both created as part of my Visual Studio project under the main solution, as BUILDERDATA.mdf and CHARACTERS.mdf. When I access them during test builds, everything functions just fine. However, they always fail in the published project.
I get the feeling either they're not exporting correctly, or the act of publishing the project is breaking the connection strings, so I'm hoping someone can help me pinpoint the issue.
Under my project settings, I have a connection set up to each database. They're both Connection Strings, their scope is Application, and the value is this:
Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\BUILDERDATA.mdf;Integrated Security=True;Connect Timeout=30
Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\CHARACTERS.mdf;Integrated Security=True;Connect Timeout=30
Under Project Properties -> Publish -> Application Files, both databases and their log files are set to Data File (Auto) for Publish Status, Required for Download Group, and Include for Hash.
Under my Prerequisites, I have SQL Server 2012 Express LocalDB marked, as well as Microsoft .NET Framework 4. Part of my code uses .NET, so that's required anyway, and I included SQL Server Express so it can access the database files. However, 2012 is the newest version available for me to include, so I'm not sure if there's an issue with that version?
If there's anything else you guys would need to see, please let me know. I just want to get this figured out and fixed so I can have my friends start testing my program. :(

setup and deployment visual basic 2010, ms-access database not found after installation

im using MS-access as my database. I've already finished the project and it is working perfectly fine.
my database location while im still developing is in C:\Users\Users\documents and the other one located at C:\Users\Users\documents\visual studio 2010\projects\project1\project1\bin\debug
is bad to put the database at two different folder?
1st problem: now creating a setup and deployment project, i use setup wizard and checked all then build it. installation of setup is successful but when i try to run the program, it doesnt respond,
2nd problem: i cant see my 1st database located at program files, only the second one and maybe this is the cause of unresponsive app.
copying the debug files into other computer and copying manually my database to user\document which i have to change permission and the copied debug files runs well, but i have to create an installer. how to do it?
from my server explorer i was wondering there is only one database, yet my program works fine when running debug? reconnecting the unseen database would be a lot of work because it is my main database.
You should check the database which is connected to your project and the path which is associated.
Try Application.StartUpPath in your connection.

use sqlserver for local based app

I'm working currently on a windows form application which uses a Database, and i want to use MS SqlServer, now i need to know how to make it local based..
In other words : after publishing the app and install it on another device, it'll crash because of the database not found and the connection string also not right.
I've find on many threads a way to copy the md5 file from SqlServer directory to the project files and change the connection string to local, but it didn't work properly as it is still crashing on other devices, so what should i do in this case ?
Also is there any software i should install it on other devices in order to use sqlServer commands (like .Net Framework..etc), and also what is SqlServer Express ?, is it the thing i'm looking for ?
Please explain in details, Thanks in Advance.
I am using SQL Server Compact 4.0, so far so good
http://en.wikipedia.org/wiki/SQL_Server_Compact
Basically you need to create DB file and carry it over to destination machine with some additional assemblies.
You can download it from here:
http://www.microsoft.com/en-us/download/details.aspx?id=17876
There is also extension for Visual studio that allows you to work with it using designers. With it you can use Entity Framework which.
http://sqlcetoolbox.codeplex.com/

Resources