如何使用数据绑定Linq到SQL添加自定义字段

时间:2017-08-17 11:45:30

标签: c# linq datagridview

我正在开发一个Windows窗体应用程序。我使用DataGridView和LINQ to SQL的数据绑定。它正在发挥作用。它绑定了整个数据。

我需要一些字段而不是整个表数据,例如:

Customers表包含五个字段(姓名,地址,手机,电子邮件,年龄)。

我使用下面的代码来获取整个数据。

private void AssignLocation_Load(object sender, EventArgs e)
{
    // Get Datacontext object to connect with data source
    SmartxBillingSystemDataContext dc = new SmartxBillingSystemDataContext();

    // create table object
    Customer customer = new Customer();
    var allcustomers = from c in dc.GetTable<Customer>() select c;

    // bind to datagrid
    customerBindingSource.DataSource = allcustomers;

    // now assign binding source to data grid view
    dataGridView1.DataSource = customerBindingSource;

}    

现在我只需要一些字段,例如姓名和地址。

此外,我需要在每行中添加一个按钮,如下所示:

| A Name       | An Address   | Button |
| Another Name | Fake Address | Button |

我怎样才能做到这一点?请帮忙。

对于点击事件,我使用下面的代码

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            popUpLocationWindow();
        }

        private void popUpLocationWindow()
        {
            MessageBox.Show("I am clicked");
        }

但是这段代码不起作用。

1 个答案:

答案 0 :(得分:2)

您可以创建自己的课程:

public class MyCustomer
{
    public string Name { get; set; }
    public string Address { get; set; }
}

并选择如下:

var allMycustomers = from c in dc.GetTable<Customer>() select new MyCustomer { Name = c.Name, Address = c.Address };

customerBindingSource.DataSource = allMycustomers;

按钮:

DataGridViewButtonColumn btn = new DataGridViewButtonColumn();
btn.HeaderText = "Button";
btn.Text = "Click Me!";
btn.Name = "btn";
dataGridView1.Columns.Add(btn);
btn.UseColumnTextForButtonValue = true;
按钮点击事件的

更新,您可以使用 dataGridView1_CellClick 事件..

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
     if (e.ColumnIndex == 2)
     {
            MessageBox.Show((e.RowIndex+1)  + "  Row  " + (e.ColumnIndex+1) + "  Column button clicked ");
     }
}