首页 > 解决方案 > 如何获取每一行中的每个数据 C# & SQL

问题描述

假设我有一个包含 3 列的表,如下所示:

ID | NAME | Subject
---+------+----------
 1 | Mark | English
 1 | Mark | Math
 2 | Matt | Math
 2 | Matt | English
 1 | Mark | History

如何获得“标记”的每个主题,如英语、数学、历史(排序依据),它们将与主题列中每一行的 ID 相匹配?因为我只得到第一个主题是“英语”或第一行。

string sql = "select * from tbl_Student where ID like '"+ID.Text+"'";

cm = new SqlCommand(sql, cn);
dr = cm.ExecuteReader();

while (dr.Read())
{
    Subject1.Text = dr["Subject"].ToString();
    Subject2.Text = dr["Subject"].ToString();
    Subject3.Text = dr["Subject"].ToString();
}

dr.Close();

标签: c#sqlwinforms

解决方案


您替换Subject.Text每个循环中的值。这意味着它只包含最后一个值。

你应该连接字符串

Subject.Text += dr["Subject"].ToString();

推荐阅读