Ich versuche, eine Web-API zu erstellen, die eine Eingabe erhält und versucht, Select-Abfrage in SQL-Datenbank auszuführen. Die Tabelle in der DB hat drei Felder, aber ich brauche nur zwei Felder in der response.Below ist der Code, den ichWeb-API, um Ergebnis von SQL-Datenbank
public async Task<IHttpActionResult> Get(string LabName){
string strcon = ConfigurationManager.ConnectionStrings["CDBConnection"].ConnectionString;
SqlConnection DbConnection = new SqlConnection(strcon);
SqlDataReader reader = null;
DbConnection.Open();
using (SqlCommand command = new SqlCommand("SELECT Acc, CSeq FROM [dbo].[c_Account] WHERE Acc = @AccName", DbConnection))
{
command.Parameters.Add(new SqlParameter("AccName", LabName));
reader = command.ExecuteReader();
List<QueryResult> qresults = new List<QueryResult>();
while (reader.Read())
{
QueryResult qr = new QueryResult();
qr.AccountID = reader["AccountID"].ToString();
qr.CounterSeq = ((int)reader["CounterSeq"]).ToString("000");
qresults.Add(qr);
}
DbConnection.Close();
//build json result
return Ok(qresults);
}
}
Das Problem hier bin versucht, es zieht alle drei Felder in der Antwort als
[{"Acc":"xyz","CSeq":"123","Year":null}]
Aber erwarten nur die Antwort als
[{"Acc":"xyz","CSeq":"123"}]
ist es auch möglich zurückkehren die Antwort so etwas wie The CSeq associated with Acc xyz is 123
Wo ist der Rest Ihres Codes? Der Code, der für das Erstellen des JSON verantwortlich ist (worüber du fragst), ist nicht hier. –
@RobertHarvey - es ist in einer Web-API-Methode, die ein 'OkNegoiatedContentResult' (über Methode Ok) zurückgibt, so dass der Aufrufer den Inhaltstyp mit dem HTTP-Header 'Content-Type' bestimmt. Web-API (mit der Standardkonfiguration) generiert automatisch ein JSON-Ergebnis vom übergebenen Modell mit json.net (ein anderer Standard) als Serializer. –
Igor