2016-11-02 3 views
0

Meine Mission Daten mit ado.net auszuwählen, aus der Datenbank zu erhalten, die zur Folge haben sollte wie folgt aussehen:wie von MSSQL

[ 
    { 
    LicenseNumber = "xxx", //string, that can contain numbers 
    EMailAddress = "[email protected]", 
    PhoneNumber = "+370 600 00001", 
    OrganisationName = "work place" 
    } 
] 

Ich habe den folgenden Code:

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; 
      } 
     } 

aber ich bekomme ein Fehler:

Eine Ausnahme vom Typ "System.Data.SqlClient.SqlException" trat in DoctorInfoWebService.dll auf, wurde aber nicht in Benutzercode behandelt Weitere Informationen: Falsche Syntax in der Nähe '.'.

Ich denke, es ist etwas falsch mit der Auswahl von Daten oder Verbindungszeichenfolge

+0

Ich glaube, Sie haben einen Tippfehler in der FROM-Anweisung 'FROM [LagoonOcean_LT] [dbo] [Person] p.inner join'... Notiz t '.' nach 'p'? Versuchen Sie, das zu entfernen –

Antwort

3
FROM [LagoonOcean_LT].[dbo].[Person] p.inner 

Was machen Sie hier zu tun versuchen? Entfernen Sie die . nach p. Auch das Standardschema ist dbo, es muss nicht geschrieben werden.

+0

Entfernen von Punkt wird nicht helfen, er muss Punkt mit Platz ersetzen – Fabio

+0

Okay, ich denke, es ist offensichtlich, dass er nicht Pinne schreiben sollte, um zu arbeiten. Meiner Meinung nach ist das offensichtlich. – mybirthname

+0

Es ist nicht offensichtlich aus Ihrer Antwort :) – Fabio

0

Zuerst ist die Abfrage falsch. Wenn Sie Präfix verwenden möchten, dann müssen Sie es erklären, wie Name

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

Zweitens, wenn Sie ADO.NET verwenden, vielleicht ist es besser, zu versuchen, die Umsetzung mit EntityFramework und LINQ Ausdruck, ist es viel klarer und einfach. Sie können einen Blick aus diesen Quellen: LINQ sample EntityFramework