-1

データベースから作成されたドロップダウン リストから名前を選択しようとしています。たてがみを割り当てるようには見えません。

選択ボタンをクリックすると、comboBox1 の人の名前が次のコードのロットに伝わりません。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
using System.Data.Sql;

namespace GlidingLogsGUI2
{
public partial class InstructorSelectionForm : Form
{
    List<Person> instructors = new List<Person>();
    Person selectedPerson;

    public InstructorSelectionForm()
    {
        InitializeComponent();
        this.TopMost = true;

        List<Person> instructors = new List<Person>();
        OleDbCommand com = new OleDbCommand("SELECT * FROM Personnel WHERE [Current?] = TRUE AND [Position] = ?", Program.DB_CONNECTION);
        com.Parameters.Add(new OleDbParameter("", PositionIDs.INSTRUCTOR));

        OleDbDataReader dr = com.ExecuteReader();

        while (dr.Read())
        {
            try
            {
                instructors.Add(new Person(dr));
            }
            catch
            {
            }
        }

        foreach (Person a in instructors)
        comboBox1.Items.Add(a.FirstName + " " + a.Surname);
    }

    private void Selectbutton_Click_1(object sender, EventArgs e)
    {
        if (selectedPerson == null)
        {
            MessageBox.Show("A person must be selected first");
            return;
        }

        new F5363(selectedPerson);
    }

    private void CancelButton_Click_1(object sender, EventArgs e)
    {
        this.Close();

    }

    private void InstructorSelectForm_Load(object sender, EventArgs e)
    {

    }


    }
}
4

1 に答える 1

3

selectedPerson を宣言していますが、どこにも設定していません。あなたがしたいことは、selectedPersonの現在の宣言を削除し、クリックイベントを次のようなものに変更することだと思います。

private void Selectbutton_Click_1(object sender, EventArgs e)
{  
    Person selectedPerson = comboBox1.SelectedItem as Person;
    if (selectedPerson == null)
    {
...
于 2013-05-19T16:39:49.873 に答える