0

私は1つのWinFormと2つのテーブルを持っています:

  • Form1 には TextBox1 が含まれています

  • Employee には ID、LastName、FirstName、BirthDate が含まれます。

  • タスクには ID、TaskName が含まれます

TextBox1 に LastName と FirtName を入力して、関連する「TaskName」が存在する場合はそれを取得し、取得したデータをプロジェクト内の任意の場所から使用できるようにする必要があります。

TaskName 変数を配置する場所を知る必要がありますか? その目的を達成するために次のコードを変更するにはどうすればよいですか?

using (LINQtoEntitiesEntities MyEntities = new LINQtoEntitiesEntities())
{
ObjectQuery<Employee> Employee = MyEntities.Employee;
var query = (from p in Employee
where p.FirstName == TextBox1.Text.Trim()
select p.LasttName, p.FirstName);
}
4

1 に答える 1

0

LastName と FirstName が (この順序で) TextBox1 に入力されている場合、それらがスペースで区切られていると仮定すると、次のように分割できます。

string[] items = TextBox1.Text.Trim().Split(new char[]{' '}, StringSplitOptions.RemoveEmptyEntries);
string lastName = items[0];
string firstName = items[1];

Split メソッドの 2 番目の引数は、姓と名を区切る複数のスペースが存在する可能性を扱います。

ID 列を使用して Employee テーブルと Tasks テーブルをリンクすると、関連する TaskName を取得して、次のようにグローバル変数に配置できるようになります。

// グローバル変数を含むクラスを作成します (まだ持っていない場合)

static class Global
{
    public static string Task {get; set;}
}

// 他のクラスのメソッド内

// 上記のコードを挿入して、姓と名を取得します

using (LINQtoEntitiesEntities MyEntities = new LINQtoEntitiesEntities())
{
   ObjectQuery<Employee> Employee = MyEntities.Employee;
   ObjectQuery<Tasks> Tasks = MyEntities.Tasks;
   Global.Task = (from e in Employee where e.LastName == lastName && e.FirstName == firstName join t in Tasks on e.ID equals t.ID select t.TaskName).FirstOrDefault();
}

// 他の場所からグローバル変数を取得:

if (Global.Task != null)
{
   // do something with Global.Task
}
于 2013-04-12T10:57:11.737 に答える