1

我有Grid View一个Date列。在数据库中,我有一个唯一的 id 列和一个 Date 列。我想从 SQL 查询中获取所有 id,以便我可以获取特定日期的所有 id。例如,如果我写“27-06-2013”​​,那么所有 id 121,123,124 都会收到。当我在使用Response.Write时,我只得到一个 id。然后我想在网格视图中显示所有 ID。

SqlCommand cmd = new SqlCommand("Select * from Scheduleappointment where Doctor_Id=@docid and Convert(varchar(5),Start_Time,108)+'-'+Convert(varchar(5),End_Time,108)=@time and Date=@date", con);
cmd.Parameters.AddWithValue("@docid", Label1.Text);
cmd.Parameters.AddWithValue("@time", timing.Text);
cmd.Parameters.AddWithValue("@date", Convert.ToDateTime(txtdate.Text).ToString("yyyy-MM-dd"));
conopen();
cmd.ExecuteNonQuery();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
    Response.Write(dr["Id"].ToString());
}

我想在网格视图的单行中显示这些 id 值。例如 121,123 在日期 27-06-2013 旁边的单行中。

4

1 回答 1

5

问题在于最后一部分

if (dr.Read())
{
    Response.Write(dr["Id"].ToString());
}

if 将只评估和读取一次。如果至少有一行,则将其写入。您可能需要 while, 阅读,直到没有更多的行。

while (dr.Read())
{
    Response.Write(dr["Id"].ToString());
}

您可能还想在写入后添加一些格式(值之间的空格或换行符)以及清理代码(关闭数据读取器等)。

于 2013-06-27T12:50:44.770 回答