在c sharp中创建ASP.NET web应用程序时,有时会用到数据库连接
具体连接方法指路:C#连接和使用MySQL数据库详细教程_c#与mysql-优快云博客
在主文件.asmx中编写数据库连接字符串时,笔者遇到了按规定要求输入连接字符串但仍无法连接的情况,经过仔细排查最终解决,现将解决方法附于下文:
最开始时输入的连接字符串如下:
string connectionString = "Server=localhost;Database=db;Uid=root;Pwd=root;";
但实测无法连接数据库。
于是查阅大量资料后,最后改为分段填写,最后利用SqlConnectionStringBuilder创建连接字符串最终连接上了
MySqlConnectionStringBuilder builder = new MySqlConnectionStringBuilder();
//用户名
builder.UserID = "root";
//密码
builder.Password = "root";
//服务器地址
builder.Server = "localhost";
//连接时的数据库
builder.Database = "db";
//定义与数据连接的链接
MySqlConnection connection = new MySqlConnection(builder.ConnectionString);
connection.Open();
猜想应该是最开始设置的字符串使用的为string类型,可能不合要求导致连接不上。
顺便将笔者自己的测试连接字符串的代码附下,希望能对遇到相同困难的朋友有帮助:
using MySql.Data.MySqlClient;
using System;
using System.Data.SqlClient;
using System.Web.Services;
namespace CityService
{
/// <summary>
/// WebService1 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
public class WebService1 : System.Web.Services.WebService
{
[WebMethod]
[Obsolete]
public string TestDatabaseConnection()
{
MySqlConnectionStringBuilder builder = new MySqlConnectionStringBuilder();
//用户名
builder.UserID = "root";
//密码
builder.Password = "root";
//服务器地址
builder.Server = "localhost";
//连接时的数据库
builder.Database = "db";
//定义与数据连接的链接
MySqlConnection connection = new MySqlConnection(builder.ConnectionString);
try
{
// 打开数据库连接
connection.Open();
return "连接数据库成功";
}
catch
{
return "连接数据库失败";
}
}
}
}