How to update model from database in Visual Web Developer 2010 Express? - mysql

I have an existing model for a MySQL database. I've added a new table in my database and now I want to update the model.
But when I right-click in the Model browser and select Update Model from Database... I get following message:
An exception of type 'Microsoft.VSDesigner.Data.Local.ConnectionStringConverterServiceException' occurred while attempting to update from the database. The exception message is: ''.
Application works just fine with existing model. I mean, data is successfully fetched when needed and all.
What might cause the problem with updating the model? Is it because of Express edition? How can I resolve the problem?
UPDATE:
<connectionStrings>
<add name="OtherDbDataContext" connectionString="metadata=res://*/DataAccess.EF.OtherDb.csdl|res://*/DataAccess.EF.OtherDb.ssdl|res://*/DataAccess.EF.OtherDb.msl;provider=MySql.Data.MySqlClient;provider connection string="User Id=id;Password=password;Host=localhost;Database=otherdb;Pooling=true;Min Pool Size=0;Max Pool Size=100;Connection Lifetime=0;Persist Security Info=True"" providerName="System.Data.EntityClient" />
<add name="DbDataContext" connectionString="server=localhost;User Id=id;password=password;Persist Security Info=True;database=db" providerName="MySql.Data.MySqlClient" />
<add name="DbDataConnectionString" connectionString="server=localhost;User Id=id;password=password;Persist Security Info=True;database=db" providerName="MySql.Data.MySqlClient" />
</connectionStrings>

Solved this problem by deleting all connectionstrings from config file. After that when you update model it prompts you to add connectionstrings and everything is working normally.
Hope it helps.

I think the problem is that the connector/net for mysql doesn't fully support express versions. Take a look at this post: Mysql - Visual Web Developer - Entity Framework

My problem with this was related to the Event Log full. Deleted event log entries and that solved the problem. Hope it helps someone.

You need to register your provider in machine.config file. This happens when the provider is not properly registered in the machine.config file.

Try updating the lowest config level closest to the .edmx file which is the app.config.
All in all the problem is connection related and not a problem in the designer IDE.

Same issue with Visual Studio 2012 Professional. After removing connection string from App.config, I cannot add new connection in "Update from database" window. MySQL Data source was missing.
Solved by installing MySQL for Visual Studio (for me it was 1.1.3 version). I had the opportunity to create connections to MySQL database. I revert connection string and even with old connection string all was fine.
Hope it helps.

Related

Visual Studio 2015 : SQL Data Source : Unable to retrieve schema. Ensure that the ConnectionString and SelectCommand properties are valid

I have the following development environment for ASP.Net WebPage
VS 2015 Professional Version, using .Net Framework 4.0
MySQL Server 5.6,
MySQL .Net Connector 6.9.5
MySQL for Visual Studio 2.0.2
I am able to connect to the MySQL database server from Visual Studio Server Explorer.
I am trying to create a SQL DataSource for MySQL Database.
When I go through the configure data source wizard, it works fine by populating the tables and columns for each table in "Configure Select Statement form", but then it fails when I try to run the test query in the wizard. It gives errors
"Could Not Create Connection Object reference not set to an instance of an object."
After that I click OK and Finish and the try to refresh schema on the SQLDataSource object in the design view it gives the error
"Unable to retrieve schema. Ensure that the ConnectionString and SelectCommand properties are valid. Object reference not set to an instance of an object."
Following code is generated in the aspx file.
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:gdsvalueConnectionString %>"
ProviderName="<%$ ConnectionStrings:gdsvalueConnectionString.ProviderName %>" SelectCommand="SELECT * FROM [sites]">
</asp:SqlDataSource>
And the connection string looks like this in web.config
<connectionStrings>
<add name="gdsvalueConnectionString" connectionString="server=localhost;user id=root;password=admin;persistsecurityinfo=True;database=gdsvalue"
providerName="MySql.Data.MySqlClient" />
</connectionStrings>
As a result, I am unable to work with any formviews or grid views which refer that SQL Data Source.
Please help me figure out what is missing in my development environment.
How to get rid of this error ?
I just found the solution here. It seems that there is a problem with the plugin for visual studio I installed:
01-mysql-connector-net-6.9.4 CUSTOM UNMARK ASP WEB
02 mysql-for-visualstudio-1.2.7 AND FINALLY:
02-mysql-for-visualstudio-2.0.4
THIS INSTALLER FIXED THE PROBLEM. You have to search for this specific version.
I had same problem, you can go to run and run services.msc, then SQL Server(SQLEXPRESS) and start that service. This might help you.

How to change MS SQL db to MySQL without causing problems with EF and logic in ASP.NET MVC?

I created a web application with ASP.NET MVC 4, Entity Framework Code First - localDB MS SQL database. After contacting the hosting company, they told me their servers only support ASP.NET MVC apps with MySQL databases.
Now I need to find how to change the MS SQL db to MySQL db without causing serious problems with EF etc. I googled but didn't find good explanations on this subject.
I had some issues with Membership - authentication more info.
And the steps explained here didn't work for me.
I would use SSMA for MySQL to transfer data to MySQL first, then in code/web.config set the database type to MySQL (first answer in this SO post explains how it is done for your ORM), then set new connection string and mysql providers in web.config and add references to MySQL connector binaries to the project.
When I did this I had some problems with tinyint(1) fields and DateType fields but that might be fixed in new connector versions.
I suggest you do not use mysql.web.dll for memberships but write your own membership/profile provider (about 300 LoC for my project) unless you need it as I had many problems with it in the past.
I also had some problems with session state provider because the inProc mode on shared hosting often causes sessions to time-out prematurely(Causing visitors to lose shopping carts/logout in certain scenarios) and the hosting provider did not have the session service running at the time so I had to use
<sessionState mode="Custom" cookieless="false" timeout="4000" customProvider="MySqlSessionStateProvider">
<providers>
<add name="MySqlSessionStateProvider" type="MySql.Web.SessionState.MySqlSessionStateStore, MySql.Web, Version=6.3.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" applicationName="\app" description="app" connectionStringName="LocalMySqlServer" />
</providers>
</sessionState>
and create the database tables first.
Considering the trouble and cost involved I would reconsider choosing a different web hosting.

Ef code first migrations on server:Cannot open database "blahblah" request by the login. The login failed

There are a million threads like this but none where the answers worked.I'm trying to get this database set up on my server (which I can remote into), but every time I try and run the web app I get this error. Why is code first not creating the database? Here's some relevant code.
Connection string in web.config
<add name="Context" connectionString="Data Source=Server\Instance;Initial Catalog=myDb;Trusted_Connection=false;User Id=User;Password=password;" providerName="System.Data.SqlClient" />
Global.asax relevant portion
Context context = new Context();
Database.SetInitializer(new MigrateDatabaseToLatestVersion<Context, Configuration>());
context.Database.Initialize(true);
if (!WebMatrix.WebData.WebSecurity.Initialized)
WebMatrix.WebData.WebSecurity.InitializeDatabaseConnection("BaseContext",
"UserProfile", "UserId", "UserName", autoCreateTables: true);
you're using integrated Windows authentication, you need to create a SQL Server login for "yourUser\ASPNET" on your SQL Server - or change your connection string to something like :
<add name="Context" connectionString="Data Source=Server\Instance;Database=myDb;Id=User;pwd=password;" providerName="System.Data.SqlClient" />
The login failed error is inside sql server error. Try if you have SQL Managment Studio logged using your data in connection string - Context.
I only thinking, but when you migrating your database recreate your user sql account and rester sql server.
Or
Try create new user by SQL Managment studio and then try usgin this data to connection string.
Check when you create user account, is not checked user must changed password first time.
I think my idea resolved your problem :)

ASP.NET / MVC4 Connection String to SQL Server 2008 error

I am working through an ASP.NET MVC4 tutorial from ASP.net. This is the second tutorial in which I am getting database connection errors. Here is the error:
An error occurred while getting provider information from the database. This can be caused by Entity >Framework using an incorrect connection string. Check the inner exceptions for details and ensure that >the connection string is correct.
Here are my connection strings. The first one was generated by the template, the 2nd was copied verbatim from the tutorial. I am running SQL Server 2008, not express. That may be my problem. The database is created automatically from the application as well. I do not have a login / password that I am aware of for this local db.
<add name="DefaultConnection"
connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=aspnet-MvcMovie-20130830102032;Integrated Security=SSPI"
providerName="System.Data.SqlClient" />
<add name="MovieDBContext"
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True"
providerName="System.Data.SqlClient"/>
I've looked on connectionstrings.com & asp.net to find a resolution and I am not clear on the fix. The error has to be in the connection string, but I am unsure which one, if not both, it is.
Thanks
I just changed the data source to Data Source=. and here is the error now:
There is already an object named 'PK_dbo.Movies' in the database.
Could not create constraint. See previous errors.
I tried to delete the database in sql server and was unable to when right clicking on it and pressing delete. Any ideas?

The provider did not return a ProviderManifestToken string error

I am trying to create a web app using ASP.Net MVC3, Entity Framework and MySQL.
I have added the following code to my Web.Config file.
<connectionStrings>
<add name="ContactContext" connectionString="server=localhost;database=contacts;uid=root;pwd=password;" providerName="MySql.Data.MySqlClient"/>
</connectionStrings>
I also have created "Person" Model , "ContactContext" in the project "Contact_Me". When I try to create a "ContactController" including Person Model and Contact context, it gives me the following error
"Unable to retrieve metadata for "Connect_Me.Models.Persons". The
provider did not return a ProviderManifestToken string"
MYSQ & MVC3 SQL connection error \ ProviderManifestToken but I am using MySQL, this is the closest question to mine. But the answer didn't solve my problem.
Thanks in advance
I know this may be very basic for a couple of you guys, but this exception is also thrown in cases where EF is unable to locate a Connection String to use.
If you-re working in a multi-layered application, make sure the connection String is added to your client application, instead of the class library that contains you data access code.
Just my 2 cents.
I got this error when my sql server was actually down. So, please be sure that your sql server is up and running.
You can also get this error if you upgrade Nuget references in an EntityFramework project that uses MySql.Data.Entity (latest version is 6.10.X) and MySql.Data (latest version is 8.0.X). Those version numbers should match. You should use the MySql.Data.EntityFramework package with MySql.Data version 8.0 and after, and the MySql.Data.Entity package with versions 6.10 and before.
There are a lot more details in this blog post: https://davidsekar.com/asp-net/mysql-error-the-provider-did-not-return-a-providermanifesttoken
The problem was with the MySQL connector/Net.
I previously used MySQL connector/Net 6.3.5 and after I uninstalled it and installed MySQL connector/Net 6.5.4 the issue was fixed. You can find latest connectors at http://www.mysql.com/products/connector/
Sometimes this issue arises because of sslmode as well, For me the solution was to add sslmode=None to connection string
I had to make a small change to my connection string from
<add name="Connection" connectionString="Server=SOMEHOST;Database=DB;Uid=USR1;Pwd=PASS1;" providerName="MySql.Data.MySqlClient" />
to
<add name="Connection" connectionString="Server=SOMEHOST;Database=DB;Uid=USR1;Pwd=PASS1;sslmode=None;" providerName="MySql.Data.MySqlClient" />
May be the error is in your connection string. Have you tried to connect to your DB instance using the above log in. try changing the connection string
connectionString="Data Source=.;Initial Catalog=contacts;Integrated Security=True uid=root;pwd=password;" providerName="MySql.Data.MySqlClient"/>
use above if you are using sql server, else if you are using sql express use below one
connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=contacts;Integrated Security=True uid=root;pwd=password;" providerName="MySql.Data.MySqlClient"/>
Even though this is answered, but I have experienced the same problem and my in case it was in the connection string; I had the part "Integrated Security" when I really shouldn't have used it; I was relying on the database authentication.
I removed the "Integrated Security=True" part and it worked perfectly :)
Restarting the computer worked for me.
While this message was showing, I did not find any differences between my computer [Windows 10] and the test server where the the application was deployed with the same configuration and was working correctly there and using the same database. It means the issue was probably not connected to the database running on the test server.
Worth mentioning is there were some Windows updates pending while restarting.