c# - ASP.NET Web API 连接到 MySQL 数据库
问题描述
我是 C# 和 .Net 应用程序的新手,但是我试图构建一个 Web API,它从MySql
数据库中提取数据并在到达该端点时以 JSON 格式显示它。
我正在使用MySql.Data.MySqlClient
它并打算使用Newtonsoft.JSON
以 JSON 格式序列化结果格式。
代码:
[Route("api/[controller]")]
[ApiController]
public class TestController : ControllerBase
{
MySqlConnection conn = new MySqlConnection(@"server=localhost;port=3306;database=mysql;username=root;password=[PASSWORD];");
[HttpGet]
public string Get()
{
MySqlCommand query = conn.CreateCommand();
query.CommandText = "SELECT * FROM engine_cost LIMIT 100";
try
{
conn.Open();
}
catch (MySqlException ex)
{
throw ex;
}
MySqlDataReader fetch_query = query.ExecuteReader();
while (fetch_query.Read())
{
return fetch_query.ToString(); // Result: "MySql.Data.MySqlClient.MySqlDataReader"
}
return "yay"; // Return JSON with Database values
}
}
我知道代码有点乱,但我真的不确定如何解决这个问题。
提前致谢
解决方案
这是我的解决方案:
[Route("api/[controller]")]
[ApiController]
public class TestController : ControllerBase
{
MySqlConnection conn = new MySqlConnection("server=localhost;port=3306;database=mysql;username=root;password=[PASSWORD];");
[HttpGet]
public string Get()
{
string sqlCmd = "SELECT * FROM engine_cost LIMIT 100";
MySqlDataAdapter da = new MySqlDataAdapter("SELECT * FROM engine_cost LIMIT 100;", conn);
da.SelectCommand.CommandType = CommandType.Text;
DataTable dt = new DataTable();
da.Fill(dt);
if (dt.Rows.Count > 0)
{
return JsonConvert.SerializeObject(dt);
}
else
{
return "no data found";
}
}
}
推荐阅读
- c++ - 在销毁 io_service 时提高 ASIO 访问违规
- python - 如何将字符串 json 转换为 python 浮点数并返回 json 中的数字
- appium - Nativescript-Dev-Appium 设置
- github - 尽管提供了有效的密钥,但 SSH 身份验证失败并显示“主机密钥验证失败”
- angular - 无法读取 Angular 6 中未定义的属性“导航”
- java - 如何返回模型中不存在的 Spring Boot 中的字段?
- java - 如果我的订阅被处置,如何让我的 rx 流做出反应?
- reactjs - 使用 React 和 NextJS 保护 API 身份验证请求
- python - Lambda 调用 Lambda - 如何在第二个中访问有效负载?
- selenium - 有没有办法在 Safari v12.1 上运行 nightwatch?