1)新建 项目 winform 窗体
文件-->新建—>windows-->winform窗体
2) 添加 Linq To Sql 类
右击项目名称--->添加---->新建项
3) 拖表到 DataClasses1.dbml
视图->服务器资源管理器
添加数据源,用来实例化dbml类
Northwind 是项目要添加的数据库名称,确定后 左面就出现表结构了
拖动 Product表到 dbml 设计器上, 类中则自动生成字段映射到数据库
拖动product表后dbml 文件自动生成的字段public partial class Products : INotifyPropertyChanging, INotifyPropertyChanged
{
private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
private int _ProductID;
private string _ProductName;
private System.Nullable<int> _SupplierID;
private System.Nullable<int> _CategoryID;
private string _QuantityPerUnit;
private System.Nullable<decimal> _UnitPrice;
private System.Nullable<short> _UnitsInStock;
private System.Nullable<short> _UnitsOnOrder;
private System.Nullable<short> _ReorderLevel;
private bool _Discontinued;
接下来开始创建控件并绑定数据源.
1)点击窗体,菜单--》数据源-->添加数据源
此时重新生成下 Linq to SQL 类文件
选中表-->详细信息-->拖放到 窗体
窗体会根据数据源 自动创建合适的控件类型
2个伪控件。1个是数据源,一个是导航
窗体数据源绑定namespace 绑定数据
{
public partial class Form1 : Form
{
DataClasses1DataContext datacontext = new DataClasses1DataContext();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//给窗体绑定数据
productsBindingSource.DataSource = datacontext.Products;
}
private void productsBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
datacontext.SubmitChanges();//提交数据更新。
}
}
}
运行窗体
可以看到数据源自动绑定到控件上了!! 非常的给力!
注意,此时不能修改更新数据,因为 是灰色的. 更新的话得开启!
窗体数据源绑定 private void productsBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
datacontext.SubmitChanges();//提交数据更新。
}
注意更新的数据必须在内存中。
假如修改了 Units On order 字段为1,点击保存 不会更新到数据库,因为他没在内存,只在窗体中。
点击导航到下一个数据,然后点击更新。 则上一条的修改数据就更新到数据库了。