Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在ASP.NET web应用程序中连接到MySql数据库?_C#_Asp.net_Mysql - Fatal编程技术网

C# 如何在ASP.NET web应用程序中连接到MySql数据库?

C# 如何在ASP.NET web应用程序中连接到MySql数据库?,c#,asp.net,mysql,C#,Asp.net,Mysql,假设我的Web.config中已经有一个名为“myConn”的格式正确的连接字符串。数据库位于不同的服务器上,并且是MySQL。如何在ASP.NET web应用程序中连接到此数据库 我的尝试: 我尝试安装支持WCF的“ADO.NET C#DbContext Generator”,但由于错误消息“the assembly reference”System.Data.Entity“无法添加到项目中,这让我大吃一惊。这个wizar将继续运行,但由此产生的项目可能无法正常构建 备注: 使用Visual

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

我的尝试:
我尝试安装支持WCF的“ADO.NET C#DbContext Generator”,但由于错误消息“the assembly reference”System.Data.Entity“无法添加到项目中,这让我大吃一惊。这个wizar将继续运行,但由此产生的项目可能无法正常构建

备注:

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

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

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

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

OdbcConnection conn = new OdbcConnection(connectionString);
conn.Open();
编辑:哦,如果它是从你想知道的web.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对象中。这不是唯一的方法,但肯定是最基本的方法。查看一种方法,使用一点反射,将结果转换为所需对象的列表。您还可以使用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

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

OdbcConnection conn = new OdbcConnection(connectionString);
conn.Open();
编辑:哦,如果它是从你想知道的web.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对象中。这不是唯一的方法,但肯定是最基本的方法。查看一种方法,使用一点反射,将结果转换为所需对象的列表。您还可以使用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

检查引用:System.Data.DataSetExtensions

代码
甚至您也可以将connectionstring放在web.config..

中,检查是否引用到:System.Data.DataSetExtensions

代码

即使您可以将connectionstring放入web.config..

中,因为您使用的是.NET 2.0,您也不能使用entity framework或
System.Data.entity

因为您使用的是.NET 2.0,您不能使用entity framework或
System.Data.entity

您的web应用程序使用的是哪个版本的.net?您是否熟悉如何在asp.net中建立数据库连接?像sqlconnection、linqdatasource等?可能是个愚蠢的问题,但下载了MySql ado.net客户端吗?@Simon Halsey我下载/安装了上述模板,它给了我错误。不确定这是否是您所指的“客户”。@DanielA.White right。好问题。我正在使用.NETFrameworkD2.0。我将把它添加到我的问题描述中。您的web应用程序使用的是什么版本的.net?您是否熟悉如何在asp.net中建立数据库连接?像sqlconnection、linqdatasource等?可能是个愚蠢的问题,但下载了MySql ado.net客户端吗?@Simon Halsey我下载/安装了上述模板,它给了我错误。不确定这是否是您所指的“客户”。@DanielA.White right。好问题。我正在使用.NETFrameworkD2.0。我将把它添加到我的问题描述中。我认为我对连接字符串部分(据我所知,它的格式是正确的)没问题,但我正在努力解决的是下一步该做什么。我认为我对连接字符串部分(据我所知,它的格式是正确的)没问题,但我正在努力解决的是下一步该做什么。@Eric Turner cool,让我知道进展如何。如果您愿意,我将添加一个编辑,向您展示如何使用odbc“模式”执行基本操作,这将非常有用!谢谢你在这方面付出了额外的努力。非常感谢。向你致敬,m先生m@EricTurner没问题!你可能想再看一遍,因为我在过去几分钟里编辑了大约一千次,添加了一些我认为有用的信息。我链接的答案很重要,明白了。不过,我还需要一些时间,因为我要到今天晚些时候才能尝试/确认解决方案。@Eric Turner cool,告诉我进展如何。如果您愿意,我将添加一个编辑,向您展示如何使用odbc“模式”执行基本操作,这将非常有用!谢谢你在这方面付出了额外的努力。非常感谢。向你致敬,m先生m@EricTurner没问题!你可能想再看一遍,因为我在过去几分钟里编辑了大约一千次,添加了一些我认为有用的信息。我链接的答案很重要,明白了。不过我还需要一些时间,因为我无法尝试/确认解决方案