【问题标题】:asp.net connecting to an external databaseasp.net 连接到外部数据库
【发布时间】:2019-05-19 19:50:36
【问题描述】:

我有一个由 Strato 托管的外部数据库,我想将我的 asp.net c# 连接到外部数据库并在数据库中插入一个新用户,但是当我尝试建立连接时出现错误。错误发生在 con.open();谁能帮我这个?我是 asp.net 的新手,所以任何示例代码都可能会有所帮助。现在我只是尝试建立与数据库的连接并在单击提交按钮时将静态数据传输到表中。

web.config

<connectionStrings>
<add name="ApplicationServices"
connectionString="server=rdbms.strato.de;database=DB33321; UID=abc123; password=pass123"
providerName="System.Data.SqlClient" />
</connectionStrings>

aspx.cs

protected void Button1_Click(object sender, EventArgs e)
{
    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ApplicationServices"].ToString());
    con.Open();

    SqlCommand cmd = new SqlCommand("insert into USER"+"(name)values(kim)");

    Response.Write("Registration success!");
    con.Close();
}

我收到的错误:

在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:命名管道提供者,错误:40 - 无法打开与 SQL Server 的连接)

【问题讨论】:

  • 看一下 Strato 网站,看起来他们只有 MySql 数据库。那是对的吗?如果是这样,您使用了错误的提供程序。使用MySqlConnection、MySqlCommand等
  • 您能否进一步详细说明? Strato 确实只有 MySql 数据库,是不是不能通过 asp.net 连接?

标签: c# mysql asp.net


【解决方案1】:

您可能发现了连接到数据库的示例,而没有意识到 ADO.Net 有多个提供程序。对于 MySql,您需要一个 nuget 包:

https://www.nuget.org/packages/MySql.Data/

然后您将更改您的连接字符串,使提供者不是System.Data.SqlClient。我相信应该是MySql.Data.MySqlClient

接下来,您更改代码以使其使用正确的类型。无论您在哪里看到“Sql ...”,都将其更改为“MySql ...”。例如:

SqlConnection 变为 MySqlConnection。

【讨论】:

  • 尽管进行了所有更改,但我仍然遇到了同样的问题。提供者(strato)是否可能不支持这一点?因为他们的网站只展示了如何连接 php 代码。
  • 我希望它可以与 .Net 一起使用,但可能存在防火墙问题或其他问题。您可以联系 Strato 支持吗?
  • 好的,非常感谢。我会和strato一起锻炼,看看效果如何。
猜你喜欢
  • 2020-07-10
  • 2021-02-26
  • 2016-05-30
  • 1970-01-01
  • 2012-12-27
  • 2013-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多