如何连接到ASP.NET Web应用程序中的MySql数据库?

时间:2012-07-30 14:05:53

标签: c# asp.net mysql

假设我的Web.config中已经有一个名为“ myConn ”的正确连接字符串。数据库位于不同的服务器上,是MySQL。如何在ASP.NET Web应用程序中连接到此数据库?

我尝试了什么:
我尝试安装'支持WCF的ADO.NET C#DbContext生成器',但是我的脸上出现了错误消息“程序集引用”System.Data.Entity“添加到项目中。这个wizar将继续运行,但生成的项目可能无法正常构建。'

备注:

  • 使用Visual Studio 2010(版本10.0.40219.1 SP1Rel)
  • 使用.NET Framework 2.0

4 个答案:

答案 0 :(得分:4)

假设ODBC(不是唯一的选项),它应该是一个问题:

OdbcConnection conn = new OdbcConnection(connectionString);
conn.Open();

编辑:哦,如果它是从we​​b.config获取它你想知道(可能不是,但谁知道),那部分将是:

string connectionString = System.Configuration.ConfigurationManager.AppSettings["myConn"].ToString(); //ToString here is optional unless you're doing some weirdness in the web.config

根据您的要求,这是obdc数据操作背后的基础知识:

以下是查询类型语句:

string command = "SELECT Something FROM SomeTable WHERE SomethingElse = '%" + "@Parameter1" + "%' AND SomethingElseStill LIKE '%" + @Parameter2 + "%' ";
using (OdbcConnection connection = new OdbcConnection(connectionString))
{
    OdbcCommand command = new OdbcCommand(command, conn);
    command.Parameters.Add("@Parameter1", OdbcType.VarChar, 255);
    command.Parameters["@Parameter1"].Value = "SomeString"
    command.Parameters.Add("@Parameter2", OdbcType.Int);
    int SomeInteger = 1;
    command.Parameters["@Parameter2"].Value = SomeInteger;
    OdbcDataAdapter adapter = new OdbcDataAdapter(command,con);
    DataSet Data = new DataSet();
    adapter.Fill(Data);
}

这将使用数据库中的数据并使用OdbcDataAdapter对象将其推送到DataTable对象中。这不是唯一的方法,但它肯定是最基本的。查看this great answer,了解使用一点反射将结果转换为所需对象列表的方法。您也可以使用LINQ之类的东西将数据映射到自定义类,但我会留给您。

无论如何,这里是相同的,但是有一个非查询:

string command = "INSERT INTO SomeTable (column1, column2, column3) VALUES '%" + "@Parameter1" + "%', '%" + "@Parameter2" + "%', '%" + "@Parameter3" + "%' ";
using (OdbcConnection connection = new OdbcConnection(connectionString))
{
    OdbcCommand command = new OdbcCommand(command, conn);
    command.Parameters.Add("@Parameter1", OdbcType.VarChar, 255);
    command.Parameters["@Parameter1"].Value = "SomeString"
    command.Parameters.Add("@Parameter2", OdbcType.Int);
    int SomeInteger = 1;
    command.Parameters["@Parameter2"].Value = SomeInteger;
    command.Parameters.Add("@Parameter3", OdbcType.VarChar, 255);
    command.Parameters["@Parameter3"].Value = "SomeOtherStringOrSomething";
    command.ExecuteNonQuery();
}

确保检查我的引用和内容,就像我在StackOverflow编辑器中写的那样,而不是任何类型的IDE,所以不幸的是我没有语法高亮:P

答案 1 :(得分:0)

如果它是一个不同的服务器,但它是相同的数据库,具有相同的凭据,您只需要将连接字符串指向新服务器的IP地址,它应该可以工作。

答案 2 :(得分:0)

检查参考:System.Data.DataSetExtensions

代码

 using System.Data.Odbc;

 private const string ConnStr = "Driver={MySQL ODBC 3.51    Driver};
 Server=localhost;Database=test;uid=root;pwd=;option=3";

甚至你可以将connectionstring放在web.config ..

答案 3 :(得分:0)

由于您使用的是.NET 2.0,因此无法使用实体框架或System.Data.Entity