如何在C#中使用SQL查询从SQL数据库中提取表的所有行

本文关键字:SQL 提取 数据库 查询 | 更新日期: 2023-09-27 18:20:03

我有一个Grid View,其中有一列Date。在数据库中,我有一个唯一的id列和一个Date列。我想从SQL查询中获取所有ID,这样我就可以获取特定日期的所有ID。例如,如果我写"27-06-2013",那么所有的id 121123124都会收到。当我使用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值。类似于日期2013年6月27日之后的单行121123。

如何在C#中使用SQL查询从SQL数据库中提取表的所有行

问题在于最后一部分

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

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

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

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