abgefragt Was ich versuche zu erreichen ist sehr einfach. Ich möchte den Namen eines Zeitplans anzeigen, wenn die zugehörige Instanz-ID mit der Instanz-ID übereinstimmt, die in der Tabelle auf meiner Webseite angezeigt wird. Hier ist der Code für die TabelleString nicht korrekt zeigt, wenn aus einer Datenbank
<table id="table1" class="table table-bordred table-striped">
<thead>
<tr>
<th>Instance Name</th>
<th>Instance ID</th>
<th>Launch Time</th>
<th>Instance Type</th>
<th>State</th>
<th>Public Ip</th>
<th>Zone</th>
<th>Schedule</th>
</tr>
</thead>
@{int totalcount = Model.instances.Reservations.Count;}
<tbody>
@for (var i=0; i <= totalcount - 1; i++)
{
foreach (var instances in Model.instances.Reservations[i].Instances)
{
<tr>
@* if an instance gets terminated and has no name it will show up as blank and stop the describe call from breaking *@
@if (instances.Tags.Count > 0)
{
<td>
@instances.Tags[0].Value
</td>
}
else
{
<td>No Name</td>
}
<td>@instances.InstanceId</td>
<td>@instances.LaunchTime</td>
<td>@instances.InstanceType</td>
<td>@instances.State.Name</td>f
<td>@instances.PublicIpAddress</td>
<td>@instances.Placement.AvailabilityZone</td>
@foreach (var row in db.Query(selectQueryString))
{
if(instances.InstanceId == row.ServerId)
{
<td>row.ScheduleName</td>
}
else
{
<td>Unscheduled</td>
}
}
</tr>
}
}
</tbody>
der Query-String oben wie so deklariert wird.
@{
var db = Database.Open("DefaultConnection");
var selectQueryString = "SELECT * FROM ScheduledServer ORDER BY Id";
}
Beim Ausführen der Abfrage in SSMS ich folgendes Ergebnis
Aber wenn ich einen Blick auf den Wert von row.ServerId
anstelle der Zeichenfolge i-a137e32b wobei seine als \ ti-a137e32b angezeigt, so Es überspringt die if-Bedingung und zeigt den Namen des Zeitplans nicht an. Ich bin nicht sehr versiert in Razor oder SQL, also habe ich keine Ahnung, warum das \ t an den Anfang meiner Zeichenfolge angehängt wird.
Ich vermute, dass Sie das '\ t' als Folge des Kopierens aus dem Ergebnisfenster mit der Abfrage sind zu sehen. Wenn Sie versuchen, 'SELECT Id, '*' + ServerId + '*', ScheduleName FROM ScheduledServer ORDER BY Id 'zu wählen, sehen Sie immer noch die Registerkarte unmittelbar vor der eigentlichen' ServerId '? – user212514
Das Format Ihrer Abfrage hat einen Fehler verursacht "Zusätzliche Information: Ungültiger Spaltenname 'ServerId'" Ich verwende MSSQL, wenn das einen Unterschied macht. – Pudding
Wenn 'ServerId' eine ungültige Spalte ist, was hat dann SQL in dem Screenshot gezeigt? – user212514