C# ASP.Net web应用程序连接到主机SQL数据库
我有一个简单的Web API应用程序,我想将它连接到主机中的数据库。这在my web.config中:C# ASP.Net web应用程序连接到主机SQL数据库,c#,mysql,sql,asp.net,asp.net-web-api,C#,Mysql,Sql,Asp.net,Asp.net Web Api,我有一个简单的Web API应用程序,我想将它连接到主机中的数据库。这在my web.config中: <connectionStrings> <add name="JarasDB" connectionString="Data Source=localhost;Initial Catalog=JarasDB;Integrated Security=True;" providerName="System.Data.SqlClient" /> </co
<connectionStrings>
<add name="JarasDB" connectionString="Data Source=localhost;Initial Catalog=JarasDB;Integrated Security=True;" providerName="System.Data.SqlClient" />
</connectionStrings>
在我的主机中发布项目后,将在Plesk面板的ASP.NET配置页面中添加连接字符串:
调用Get方法后,我希望在数据库中创建一个表,但什么也没发生。我想知道我的问题在哪里。
出现此问题的原因是您正在使用SQL Server连接字符串连接MySQL数据库,该数据库无法按预期工作。确保您的项目中引用了MySQL Connector.NET(即包含
MySQL.Data.dll
和所有相关程序集),然后从此程序集中替换连接字符串:
<!-- Wrong (SQL Server connection string) -->
<add name="JarasDB" connectionString="Data Source=localhost;Initial Catalog=JarasDB;Integrated Security=True;" providerName="System.Data.SqlClient" />
参考:您无法从主机提供商处访问localhost。您需要一个可供主机访问的数据库服务器。你也可以考虑一个嵌入式数据库,如SQLite,如果它符合你的需要。我如何使用名字ID和密码连接数据库服务器?虽然我不熟悉Pelsk,但是我在你的屏幕截图中看到了一个“数据库”标签。有几十个选项,但我将从这里开始。您的代码(
SqlConnection
)和连接字符串是针对Microsoft SQL Server的,但您的屏幕截图是一个MySQL数据库。您需要使用MySqlConnection
连接到它,例如。,
<!-- Wrong (SQL Server connection string) -->
<add name="JarasDB" connectionString="Data Source=localhost;Initial Catalog=JarasDB;Integrated Security=True;" providerName="System.Data.SqlClient" />
<!-- Correct -->
<add name="JarasDB" connectionString="Server=localhost;Port=3306;Database=jarasdb;Uid=UserID;Pwd=XXXXX" providerName="MySql.Data.MySqlClient"/>
// add this line on top of 'using' lines
using MySql.Data.MySqlClient;
public string Get(int id)
{
string connectionString = ConfigurationManager.ConnectionStrings["JarasDB"].ConnectionString;
using (MySqlConnection con = new MySqlConnection(connectionString))
{
try
{
con.Open();
using (MySqlCommand command = new MySqlCommand("CREATE TABLE Customer(First_Name char(50),Last_Name char(50),Address char(50),City char(50),Country char(25),Birth_Date datetime);", con))
{
command.ExecuteNonQuery();
}
}
catch (Exception ex)
{
// throw exception here
}
}
return strings[id];
}