/ / Versuchen, Elemente aus einer DataTable in eine Webseite zu lesen - asp.net

Versuchen, Elemente von einer DataTable in eine Webseite zu lesen - asp.net

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 № 1
  1. p ist ein HTML-Element, das Sie hinzufügen müssen runat=server wenn Sie serverseitig darauf zugreifen möchten
  2. Bei C # wird die Groß- / Kleinschreibung beachtet, und die Eigenschaft wird aufgerufen Rows Anstatt von rows

    <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();