C# ASP.NET Web API连接到MySQL数据库

C# ASP.NET Web API连接到MySQL数据库,c#,asp.net-web-api,C#,Asp.net Web Api,对于C和.Net应用程序,我是新手,但我尝试构建一个Web API,从MySql数据库中提取数据,并在到达该端点时以JSON格式显示数据 为此,我使用MySql.Data.MySqlClient,并打算使用Newtonsoft.JSON将结果格式序列化为JSON格式 代码: [Routeapi/[controller]] [ApiController] 公共类TestController:ControllerBase { MySqlConnection conn=新建MySqlConnectio

对于C和.Net应用程序,我是新手,但我尝试构建一个Web API,从MySql数据库中提取数据,并在到达该端点时以JSON格式显示数据

为此,我使用MySql.Data.MySqlClient,并打算使用Newtonsoft.JSON将结果格式序列化为JSON格式

代码:

[Routeapi/[controller]] [ApiController] 公共类TestController:ControllerBase { MySqlConnection conn=新建MySqlConnection@server=localhost;port=3306;database=mysql;username=root;password=[password];; [HttpGet] 公共字符串获取 { MySqlCommand query=conn.CreateCommand; query.CommandText=从引擎成本限制中选择*100; 尝试 { 康涅狄格开放大学; } 捕获MySqlException { 掷骰子; } MySqlDataReader fetch\u query=query.ExecuteReader; 在获取\u query.Read时 { 返回fetch_query.ToString;//结果:MySql.Data.MySqlClient.MySqlDataReader } return yay;//返回带有数据库值的JSON } } 我知道代码有点混乱,但我真的不确定如何解决这个问题

提前感谢

这是我的解决方案:

[Routeapi/[controller]] [ApiController] 公共类TestController:ControllerBase { MySqlConnection conn=new MySqlConnectionserver=localhost;port=3306;database=mysql;username=root;password=[password];; [HttpGet] 公共字符串获取 { 字符串sqlCmd=SELECT*FROM engine_cost LIMIT 100; MySqlDataAdapter da=新的MySqlDataAdapter从engine_cost LIMIT 100;中选择*,康涅狄格州; da.SelectCommand.CommandType=CommandType.Text; DataTable dt=新的DataTable; da.Filldt; 如果dt.Rows.Count>0 { 返回JsonConvert.SerializeObjectdt; } 其他的 { 返回未找到的数据; } } }
看到这个答案:@MattEvans谢谢,还在继续。发现这一点非常难理解,为什么要使用return-JsonConvert.SerializeObjectdt;?您可以返回dt;,然后ASP将创建一个ObjectResult,对象结果的默认格式化程序是JSON,因此它将在响应中将dt格式化为JSON。