在文本框C#中显示人员类数据

时间:2016-11-05 19:30:23

标签: c# c#-4.0 windows-forms-designer

]我需要使用Windows窗体在C#中编写一个迷你程序 - 我是C#和编程的新手,所以对我来说已经过时了。 假设我有10名医生(laege),我想显示每个医生的信息,如CVR号码,地址,电子邮件等等 - 许多不同的valules(bool,int,strings) 我创建了一个名为praksisOplysninger的课程(医生的信息) 在我的按钮处理程序中添加了一名医生(laege1)。 当用户输入yderNr时,如何显示数据 - 然后需要显示其余信息 - 我为此制作了几个文本框。 现在我收到一个错误调用许多递归 - 我需要在我的医生类中停止我的循环 - 我已经尝试了几个小时 - 请帮助 提前谢谢:)

  

块引用

**这是我的班级医生 - 我班上的laege1-10 ** laege等于丹麦的医生;)现在我收到一个递归错误..我怎么能停止循环?按钮处理程序中的代码没有错误。

`laegeInfo laege1 = new laegeInfo()
    {
        yderNr = 012345,
        navn = "Johannes Andersen",
        CVR = 4100,
        adresse = "Frederiksvej 15, Faxe",
        telefon = 32424323,
        email = "JAplo@.dgm",
        kommune = 4640,
        solo = true,
        flermands = false,
        besoeg = 20,
        FMKBesoeg = true,
        sidsteBesoeg = new DateTime(2016, 6, 3)

`{

  

块引用

      var  userInput = int.Parse(txtPraksisoplysningerYderNr.Text);
        var laege = laeger.SingleOrDefault(d => d.Ydernr == userInput);
        if(laege != null)
        {
            txtLaegensNavn.Text = laege.Navn;
            txtCVR.Text = laege.Cvr.ToString();
            txtLaegensAdresse.Text = laege.Adresse;
            txtlaegenstlfNR.Text = laege.Telefon.ToString();
            txtLaegensEmail.Text = laege.Email;
            txtLaegensKommune.Text = laege.Kommune.ToString();

        }

        btnFindLaegeOplysning.Show();

2 个答案:

答案 0 :(得分:0)

假设您有某些医生列表存储在某处(数据库,医生类本身的静态列表等),您可以使用LINQ检索特定的医生对象,其中yderNr属性等于用户输入的属性。 例如:

public class Doctor
{
    public string Name { get; set; }
    public int PhoneNumber { get; set; }
    public int YderNr { get; set; }
}

public class Program
{
    public static void Main(string[] args)
    {
        var doctors = new List<Doctor>
        {
            new Doctor()
            {
                Name = "Jens Andersen",
                PhoneNumber = 12345567,
                YderNr = 02131
            }
        };

        var userInput = int.Parse(txtPraksisoplysningerYderNr.Text);

        var doctor = doctors.SingleOrDefault(d => d.YderNr == userInput);

        if (doctor != null)
        {
            // Set the textbox text with the doctor's data
        }
    }
}

有关LINQ SingleOrDefault()方法的更多信息,click here

<强>更新

我不确定你的文本框名称是什么,但是这里是你如何将文本框的文本设置为上面代码片段中if语句中医生的数据:

if (doctor != null)
{
    // Set the textbox text with the doctor's data
    txtDoctorName.Text = doctor.Name;
    txtDoctorPhoneNumber.Text = doctor.PhoneNumber;
    txtDoctorYderNr.Text = doctor.YderNr;
}

如果您有三个具有以下名称的文本框控件,则可以使用此功能:txtDoctorNametxtDoctorPhoneNumbertxtDoctorYderNr

答案 1 :(得分:0)

           `laegeInfo laege9 = new laegeInfo()` 
        {
            yderNr = 09123,
            navn = "Mille Andersen",
            CVR = 05232,
            adresse = "Parkvej 90, Sorø",
            telefon = 22996124,
            email = "MAplo@.dgm",
            kommune = 4180,

        };
        laegeInfo laege10 = new laegeInfo()
        {

            yderNr = 10102,
            navn = "Bent Justesen",
            CVR = 00632,
            adresse = "Asgers park 76, Solrød",
            telefon = 99885034,
            email = "BJplo@.dgm",
            kommune = 2680,

        };
        List<laegeInfo> laegers = new List<laegeInfo>(10);
            laegers.Add(laege1);
            laegers.Add(laege2);
            laegers.Add(laege3);
            laegers.Add(laege4);
            laegers.Add(laege5);
            laegers.Add(laege6);
            laegers.Add(laege7);
            laegers.Add(laege8);
            laegers.Add(laege9);
            laegers.Add(laege10);

            var UserInput = int.Parse(txtPraksisoplysningerYderNr.Text);
            var laege = laegers.SingleOrDefault(L => L.yderNr == UserInput);
            if (laege != null)

                foreach (laegeInfo L in laegers)
            {
                txtLaegensNavn.Text = L.navn;

                txtCVR.Text = L.CVR.ToString();

                txtLaegensAdresse.Text = L.adresse;

                txtlaegenstlfNR.Text = L.telefon.ToString();

                txtLaegensEmail.Text = L.email;

                txtLaegensKommune.Text = L.kommune.ToString();