0

我有 1 个 WinForm 和 2 个表:

  • Form1 包含 TextBox1

  • Employee 包含 ID、LastName、FirstName、BirthDate。

  • Tasks 包含 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 方法的第二个参数处理可能存在多个空格分隔姓氏和名字的可能性。

如果 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 回答