【问题标题】:how to select data with ado.net from mssql如何使用 ado.net 从 mssql 中选择数据
【发布时间】:2017-03-15 20:19:41
【问题描述】:

我的任务是从数据库中获取结果,应该如下所示:

[
  {
    LicenseNumber = "xxx", //string, that can contain numbers
    EMailAddress = "people@gmail.com",
    PhoneNumber = "+370 600 00001",
    OrganisationName = "work place"
  }
]

我得到以下代码:

public class DataController : ApiController
        {
            [Authorize]
            [HttpGet]
            [Route("api/participants")]
            public JsonResult<Array> Get(string participantCode)
            {
                JsonResult<Array> result = null;
                string connectionString = "Server=db1.lagoon.lt;Database=LagoonOcean_LT;Integrated Security=True";               
                string queryString =
                    "SELECT p.LicenseNumber, p.EMailAddress, p.PhoneNumber, w.OrganisationName" + 
                    "FROM [LagoonOcean_LT].[dbo].[Person] p.inner join LagoonOcean_LT.dbo.PersonMainWorkplaceVW w on w.PersonUUID = p.PersonUUID" +
                    "WHERE LicenseNumber == participantCode;";
                int paramValue = 5;
                using (SqlConnection connection = new SqlConnection(connectionString))                   
                {
                    SqlCommand command = new SqlCommand(queryString, connection);
                    command.Parameters.AddWithValue("@LicenseNumber", paramValue);


                    var participants = new List<object>();
                    try
                    {
                        connection.Open();
                        using (SqlDataReader reader = command.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                participants.Add(new[]{new
                                    {
                                    LicenseNumber = reader[0],
                                    EMailAddress = reader[1],
                                    PhoneNumber = reader[2],
                                    OrganisationName = reader[3]
                                    }
                                });
                            }
                            reader.Close();
                        }
                        connection.Close();
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                  result = Json<Array>(participants.ToArray());
                 }
                return result;
            }
        }

但我得到一个错误:

DoctorInfoWebService.dll 中出现“System.Data.SqlClient.SqlException”类型的异常,但未在用户代码中处理 附加信息:'.' 附近的语法不正确。

我认为选择数据或连接字符串有问题

【问题讨论】:

  • 我认为您的 FROM 语句 FROM [LagoonOcean_LT].[dbo].[Person] p.inner join 中有错字。注意 '.'在p 之后?尝试删除它

标签: c# mysql json select ado.net


【解决方案1】:
FROM [LagoonOcean_LT].[dbo].[Person] p.inner

你想在这里做什么?删除 p 之后的 .。此外,默认架构是 dbo,不需要编写。

【讨论】:

  • 去掉点没用,他需要用空格替换点
  • 好吧我觉得很明显他不应该写pinner来工作。在我看来,这是显而易见的。
  • 从你的回答中看不出来:)
【解决方案2】:

首先,查询错误。如果要使用前缀,则需要将其声明为名称

SELECT p.Name FROM Students p WHERE p.Id = 1

其次,如果您使用的是ADO.NET,也许最好尝试使用EntityFramework和LINQ表达式来实现,这样会更加清晰和简单。您可以从这些来源中查看: LINQ sample EntityFramework

【讨论】:

    猜你喜欢
    • 2011-07-12
    • 1970-01-01
    • 1970-01-01
    • 2020-11-06
    • 1970-01-01
    • 2018-03-19
    • 2014-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多