Die folgende Codezeile gibt den obigen Fehler, wenn der ASPX-Code unter IIS auf meinem lokalen Computer ausgeführt wird.BC30201: Ausdruck erwartet
Details = If(.GetString(2) = "", "", "<div><b>" & .GetString(2) & "</b></div>")
Der exakt gleiche Code läuft ohne Fehler auf dem Produktionswebserver. Ich habe gerade übernommen, sich um diese Seite zu kümmern, und ich bin noch nicht auf diese Art von If-Anweisung gestoßen.
Hier ist der Code, der der obigen Anweisung vorausgeht, der den Fehler BC30201 verursacht.
' Execute SQL procedure to fetch performance details
With New SQLCommand("FetchPerformance1", New SQLConnection(ConfigurationManager.ConnectionStrings("C1").ConnectionString))
.Parameters.AddWithValue("@Performance", Code)
.Parameters.AddWithValue("@Filters", Convert.ToByte(Mid(Query, 24, 1), 16))
.CommandType = StoredProcedure : .Connection.Open
With .ExecuteReader(CloseConnection)
' If performance not found ...
If Not .Read
' Display message page:
' Terminate script:
.Close : Response.End
End If
' Construct performance details string:
If .GetInt32(0) > 0 Then Links = "<a href=""view3.aspx" & Left(Query, 24) & Hex(.GetInt32(0)) & """ style=""float: left""><<</a>"
If .GetInt32(1) > 0 Then Links &= "<a href=""view3.aspx" & Left(Query, 24) & Hex(.GetInt32(1)) & """ style=""float: right"">>></a>"
Welchen Fehler bekommen Sie? Die Syntax sieht sehr seltsam aus. Punktoperator ('.') bedeutet, dass Sie auf eine Methode eines Objekts zugreifen, aber vor dem Punkt ist nichts. Auch wenn es bedeutet, dass es eine Entscheidung zwischen "wahr" und "falsch" geben sollte, und es gibt keine solche Sache hier –
BC30201: Ausdruck erwartet ist der Fehler, den ich bekomme. Der Punktoperator (.) Verweist auf das dritte Feld eines Datensatzes. Meine zweite Frage war, dass ich nicht ganz verstanden habe, was die if-Anweisung zu erreichen versucht. – DZS50
Ich denke, wir brauchen mehr als nur eine Linie. Gib uns etwas Code, der es umgibt. Auch welche Sprache betrachten wir? –