如何使用数据绑定源实现Join SQL命令

时间:2013-11-26 00:52:42

标签: c# sql data-binding

我有一个有两本表和书籍的数据库。这两个表由两个表中出现的字段AuthorID连接。

  

书桌(ISBN,书名,作者ID)

     

作者表(AuthorID,Name)

我有一个表单,它检索BOOK表中的所有信息,我想检索作者名称而不是AuthorID。我想在Visual Studio中创建一个数据绑定源,根据作者ID检索作者姓名值。我编写了sql join查询,但我不知道如何调用在Visual Studio中使用C#进行数据绑定时实现

谢谢

2 个答案:

答案 0 :(得分:1)

所以使用linq这很容易。

创建一个类来保存已加入结果的记录。

public class Book
{
    public string ISBN {get; set;}
    public string Title {get; set;}
    public int AuthorID {get; set;}
    public string AuthorName {get; set;}
}

创建一个列表或可枚举对象来保存所有已加入的结果。

List<Book> books

拿两个来源。让我们称他们为书籍和作者。然后让我们写连接。

List<Book> books = from book in BookTable
                   join author in AuthorTable on book.AuthorID equals author.AuthorID
                   select new Book
                   {
                       ISBN = book.ISBN
                       Title= book.Title
                       AuthorName = author.Name
                       AuthorID = book.AuthorID
                   }.ToList();

然后我们将您的(ListView?)数据源分配给该连接。

lvwBooks.DataSource = books;

另外如果您想在平面sql中执行此操作:

select Authors.Name, Authors.AuthorID, Books.Title, Books.ISBN from Authors
join Books on Books.AuthorID = Authors.AuthorID

你应该做得好!

答案 1 :(得分:0)

如果我正确理解了这个问题,那么你应该创建一个SQL数据源并使用你为select查询编写的自定义sql语句。

创建sql数据源后,您可以在尝试绑定的任何控件中指定textfield和value字段。