我在asp.net中使用C#ODBC对象连接到另一台计算机上托管的MySQL服务器(在同一网络上)。
<%@ Import Namespace="System.Data.Odbc" %>
<html>
<body>
<script language="C#" runat="server">
protected void Page_Load(Object Src, EventArgs E)
{
try
{
using(OdbcConnection connection = new OdbcConnection("DRIVER={MySQL ODBC 5.51.30 Driver};Database=test;Server=192.168.1.109;UID=Username;PWD=Password;"))
{
connection.Open();
using(OdbcCommand command = new OdbcCommand("SELECT * FROM tablename", connection))
using(OdbcDataReader dr = command.ExecuteReader())
{
while(dr.Read())
Response.Write(dr["name"].ToString() + "<br>");
dr.Close();
}
connection.Close();
}
}
catch(Exception ex)
{
Response.Write("An error occurred: " + ex.Message);
}
}
</script>
</body>
</html>
我在运行代码时遇到此错误:
An error occurred: ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
我在Microsoft IIS服务器上托管此功能,并启用了ASP.net。我能否在修复此错误方面获得任何帮助?
链接到我的MySQL服务器的图像:http://i.stack.imgur.com/4NYCr.png
答案 0 :(得分:0)
我能否在修复此错误方面获得任何帮助?
是的,你愿意。所以,你唯一的问题得到了回答。现在?请多想一想你的问题。
解决你的问题。
与往常一样,http://www.connectionstrings.com/是此主要资源;)您想知道一个地方连接线的任何内容。
对于MySQL(假设5.2),您可以在以下位置找到(对于ODBC)解决方案:
http://www.connectionstrings.com/mysql-connector-odbc-5-2/
现在,你的字符串看起来很好 - 所以我开始假设你有一个驱动程序问题。我会假设无论你在哪里运行它都没有 - 安装了ODBC驱动程序。
这样说:没有真正的理由使用ODBC(具有本机先决条件)而不是(托管)MySQL驱动程序?
如果你真的错过了ODBC驱动程序,你可以在http://www.mysql.com/products/connector/下载。但我真的不会在这里使用ODBC - 不能使用本机连接器。
答案 1 :(得分:0)
我认为您最好使用MySQlConnection
以及MyqlCommand
来满足您的需求:
例如:
server = "localhost";
database = "connectcsharptomysql";
uid = "username";
password = "password";
string connectionString;
connectionString = "SERVER=" + server + ";" + "DATABASE=" +
database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";
connection = new MySqlConnection(connectionString);