假设我的Web.config中已经有一个名为“ myConn ”的正确连接字符串。数据库位于不同的服务器上,是MySQL。如何在ASP.NET Web应用程序中连接到此数据库?
我尝试了什么:
我尝试安装'支持WCF的ADO.NET C#DbContext生成器',但是我的脸上出现了错误消息“程序集引用”System.Data.Entity“添加到项目中。这个wizar将继续运行,但生成的项目可能无法正常构建。'
备注:
答案 0 :(得分:4)
假设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对象中。这不是唯一的方法,但它肯定是最基本的。查看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
。