C#中如何连接数据库?

how to connect to database in c #?

很好,我正在学习 c# .net,我在这个查询中的错误是什么? ,我想使用获取服务,它给了我一个连接错误。我提前谢谢你我想学习编程开始在编程的世界

 [HttpGet("buscar/{id}")]
        public ActionResult buscar(int id)
        {
            string cn =
        "Data Source=192.168.1.16;Initial Catalog=ProjectCondominio;Integrated User = ebim; Password = Viernes14";


            string query = "SELECT * FROM dbo.MPERSONAS" +
                "WHERE MPERS_ID = @idpersona";

            using (SqlConnection cmd = new SqlConnection(cn))
            {
                SqlCommand command = new SqlCommand(query, cmd);
                command.Parameters.AddWithValue("@idpersona", id);
               
                    cmd.Open();
                    SqlDataReader reader = command.ExecuteReader();
                return Ok(reader);
            }

        }

enter image description here

string query = "SELECT * FROM dbo.MPERSONAS" +
                "WHERE MPERS_ID = @idpersona";

将连接到

SELECT * FROM dbo.MPERSONASWHERE MPERS_ID = @idpersona

无效 sql。在第一行末尾或第二行开头添加 space。或者使用 @ 并像这样使用 ReturnCharacter 保留您的查询:

string query = @"SELECT * FROM dbo.MPERSONAS
                 WHERE MPERS_ID = @idpersona";

此外(没有问题,但无论如何让我告诉你)不要使用“裸”SqlCommand 并返回整个 DataReader:

想象一下当您向 dbo.MPERSONAS 添加新列时会发生什么 - 您的 API 将作为副作用发生变化,从而暴露这个新列。也许您公开了一些 PPI(受保护的个人信息)或 dbo.MPERSONAS.CreditCardNumber 或其他任何内容。

使用强类型 DTO(我不知道您使用的是哪个版本的 .net,所以可能是新的 record (.net5+) 或旧的 class)+ 某种 ORM,像 Dapper(如果您想手动编写查询 - Whosebug 在 Dapper 上是 运行 ;))或 EntityFramework(Core)。