C# ASP.Net web应用程序连接到主机SQL数据库

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

我有一个简单的Web API应用程序,我想将它连接到主机中的数据库。这在my web.config中:

  <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];
}