Ich versuche, Elemente aus einer DataTable in eine Webseite zu lesen, bekomme aber 2 Fehler im C # -Code: p1.InnerHTML = dt.rows(0).Item(0);
Fehler:
p1 existiert nicht im aktuellen Inhalt. System.Data.Datatable enthält keine Definition für "Zeilen" und keine Erweiterungsmethode "Zeilen", die ein erstes Argument akzeptieren.
C #
protected void Page_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
string strConnection = ConfigurationManager.ConnectionStrings["ChinatowndbConnString"].ConnectionString;
SqlConnection conn = new SqlConnection(strConnection);
string sql = "SELECT pagetext FROM Content where pagetag = 1";
SqlCommand cmd = new SqlCommand(sql);
cmd.CommandType = CommandType.Text;
cmd.Connection = conn;
SqlDataAdapter sd = new SqlDataAdapter(cmd);
sd.Fill(dt);
p1.InnerHTML = dt.rows(0).Item(0);
p2.InnerHTML = dt.rows(1).Item(0);
p3.InnerHTML = dt.rows(2).Item(0);
}
HTML:
<p id="p1" class="none"></p>
<p id="p2" class="none"></p>
<p id="p3" class="none"></p>
Irgendwelche Ideen, wie ich meinen Code zum Laufen bringen kann,
Vielen Dank Tee
Antworten:
3 für die Antwort № 1p
ist ein HTML-Element, das Sie hinzufügen müssenrunat=server
wenn Sie serverseitig darauf zugreifen möchtenBei C # wird die Groß- / Kleinschreibung beachtet, und die Eigenschaft wird aufgerufen
Rows
Anstatt vonrows
<p id="p1" runat="server" class="none"></p> <p id="p2" runat="server" class="none"></p> <p id="p3" runat="server" class="none"></p>
Darüber hinaus wird in C # auf einen Arry-Indexer über eckige Klammern anstelle von Klammern zugegriffen. Aber ich würde vorschlagen, das zu verwenden DataRow.Field
Erweiterungsmethode stattdessen:
p1.InnerHtml = dt.Rows[0].Field<String>(0); // first field of first row, assuming that it"s a string
Schlussbemerkung: Sie haben sich auch vertippt InnerHtml
. Visual Studio kann es automatisch für Sie korrigieren, wenn sich der Cursor irgendwo befindet InnerHTML
und du drückst Strg + Leertaste.
0 für die Antwort № 2
Sie müssen runat = "server" für jeden von ihnen hinzufügen, um auf der Serverseite verfügbar zu sein.
<p id="p1" class="none" runat="server"></p>
<p id="p2" class="none" runat="server"></p>
<p id="p3" class="none" runat="server"></p>
und beim Zuweisen von Verwendung
dt.Rows[0][0].ToString();
dt.Rows[1][0].ToString();
dt.Rows[2][0].ToString();