【发布时间】:2014-02-01 19:33:01
【问题描述】:
我有两张表,分别是医生和医学史,它们彼此有关系。我使用外连接在医生表中显示医生姓名而不是医生 ID。现在我想要的是显示标签中记录最多的医生姓名。看第一张图片,因为 Jack 有 3 条记录,而 John 只有 1 条记录,我想在标签中显示 Jack。所以输出将是 GP: Jack。标签名称称为 lblGP。除了 RadioSpace 方法之外的任何其他帮助,我不知道如何编写数据集。帮忙???
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;
using System.Data;
public partial class member_viewmedicalhistory : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack == false)
{
// call BindGridView
bindGridView();
}
}
private void bindGridView()
{
int ID = Convert.ToInt32(Session["ID"].ToString());
//get connection string from web.config
string strConnectionString = ConfigurationManager.ConnectionStrings["sacpConnectionString"].ConnectionString;
SqlConnection myConnect = new SqlConnection(strConnectionString);
string strCommandText = "SELECT convert(varchar, mCheckupDate, 103) AS CheckUpDate, mReview AS Review, pat.pFirstName AS FirstName, doc.dFirstName as Doctor, ill.illnessType from medicalhistory AS hist ";
strCommandText += " LEFT OUTER JOIN PATIENT as pat on hist.patientid = pat.patientid ";
strCommandText += " LEFT OUTER JOIN DOCTOR as doc on hist.doctorid = doc.doctorid ";
strCommandText += " LEFT OUTER JOIN ILLNESS as ill on hist.illnessid = ill.illnessid ";
strCommandText += " WHERE hist.patientid = " + ID.ToString();
try
{
SqlCommand cmd = new SqlCommand(strCommandText, myConnect);
myConnect.Open();
SqlDataReader reader = cmd.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(reader);
GrdViewMedicalHistory.DataSource = dt;
GrdViewMedicalHistory.DataBind();
lblResult.Text = "";
reader.Close();
}
catch (SqlException ex)
{
lblResult.Text = "Error:" + ex.Message.ToString();
}
finally
{
myConnect.Close();
}
}
}
【问题讨论】:
标签: c# gridview count record outer-join