实例28、创建LINQ TO sql的步骤:1)建立windows 窗体应用项目文件2)选择'项目\添加新项'菜单,在类别中选择'常用项',在'模板'视图中选择'LINQ to sql '类,系统自动添加用户命名的LINQ to SQL 文件(dataclasses1.dbml)3)选择'视图\服务器资源管理器'菜单,拖动数据链接的表或者视图节点到LINQ to SQL 的对象关系设计器设计视图的左边的一个窗格,系统将自动添加数据表。
4)选择'生成\生成myform'菜单,然后选择'数据\显示数据源'菜单,弹出'数据源'窗口,单击'添加新数据源'超级链接,弹出'数据源配置向导'对话框。
5)在'数据源配置向导(选择数据源类型)'对话框的'应用程序从哪里获取数据?'列表视图中选择'对象',再单击'下一步',弹出'数据源配置向导(选择希望绑定到的对象)'对话框,在对话框的'对象位于哪个程序集中?(如果没有出现,请取消该向导,然后重现生成包含对象的项目)'的树视图中选择数据表节点(比如gsyproduct表),再单击'下一步',弹出'数据源配置向导(添加对象数据源)'对话框,在对话框中单击'完成'按钮,则会在'数据源'窗口中显示数选择的数据表(比如gsyproduct )的字段信息。
6)在'数据源'窗口中拖动'gsyproduct'节点到应用程序窗体'Form1.vb(设计)'视图,系统将自动添加相关的数据控件gsyproductbindingsource、gsyproductbindingnavigator、gsyproductdatagridview等。
7)使用鼠标双击'应用程序窗体Form1.vb(设计)'视图,系统将自动添加代码框架,在load事件处理代码框架中添加如下实现代码:public class form1private MyDataContext as New Dataclasses1DataContext()'设置控件数据源private sub Form1_load(ByVal sender as System.Object, ByVal e asSystem.EventArgs ) Handles MyBase.LoadMe.gsyproductbindingsource.DataSource=MyDataContext.gsyproduct End SubEnd Class8)更改视图标签:在'解决方案资源管理器'窗口中打开应用程序窗体'Form 1.vb(设计)'视图,鼠标右键单击'gsyproductbindingNavigator'控件中的'bindingNavigatorMoveFirstItem'按钮,在弹出的浮动菜单中选择'插入\label'菜单项,系统自动在gsyproductBindingNavigator控件中添加一个'ToolStripLabel'控件(ToolStripLabel1),然后用同样的方法在gsyproductBindingNavigator控件中添加一个ToolStripTextBox控件(ToolStripTextBox1)和ToolStripButton 控件(ToolStripButton1)。
在'属性'窗口中设置ToolStripLabel1的text属性为'商品代码:',设置ToolStripTextBox1的text属性为'00001601',设置ToolStripButton1的text属性为'查询',DisplayStyle属性为'ImageAndText'。
属性设置完成后,直接在'Form1.vb(设计)'视图中双击ToolStripButton1,修改其click事件代码可以实现互动查询:'查询记录private sub ToolStripButton1_Click(ByVal sender as System.Object,ByVal e as System.EventArgs ) Handles ToolStripButton1.clickDim Mytext =Me.ToolStripTextBox1.textDim MyQuery =From gsyproduct In MyDataContext.gsyproduct where gsyproduct.pro_id =Mytext select gsyproductMe.gsyproductBindingSource.DataSource =MyQueryEnd Sub实例29、如何重置LINQ to SQL类的默认方法实例程序使用自定义存储过程重置LINQ to SQL类的Insert(插入)默认方法的主要步骤如下:1)建立windows 窗体应用项目文件2)选择'项目\添加新项'菜单,在类别中选择'常用项',在'模板'视图中选择'LINQ to sql '类,系统自动添加用户命名的LINQ to SQL 文件(dataclasses1.dbml)3)选择'视图\服务器资源管理器'菜单,拖动数据链接的表或者视图节点到LINQ to SQL 的对象关系设计器设计视图的左边的一个窗格,系统将自动添加数据表。
4)选择'生成\生成myform'菜单,然后选择'数据\显示数据源'菜单,弹出'数据源'窗口,单击'添加新数据源'超级链接,弹出'数据源配置向导'对话框。
5)在'数据源配置向导(选择数据源类型)'对话框的'应用程序从哪里获取数据?'列表视图中选择'对象',再单击'下一步',弹出'数据源配置向导(选择希望绑定到的对象)'对话框,在对话框的'对象位于哪个程序集中?(如果没有出现,请取消该向导,然后重现生成包含对象的项目)'的树视图中选择数据表节点(比如Customers表),再单击'下一步',弹出'数据源配置向导(添加对象数据源)'对话框,在对话框中单击'完成'按钮,则会在'数据源'窗口中显示选择的数据表(比如Customers数据表)的字段信息。
6)在'数据源'窗口中拖动Customers节点到应用程序窗体'Form1.vb(设计)'视图,系统将自动添加相关的数据控件Customersbindingsource、Customersbindingnavigator、Customersdatagridview等。
7)使用鼠标双击'应用程序窗体Form1.vb(设计)'视图,系统将自动添加代码框架,在load事件处理代码框架中添加如下实现代码:public class form1private MyDataContext as New Dataclasses1DataContext()'设置控件数据源private sub Form1_load(ByVal sender as System.Object, ByVal e asSystem.EventArgs ) Handles MyBase.LoadMe.Customersbindingsource.DataSource=MyDataContext.Customers End SubEnd Class8)在应用窗体'Form1.vb (设计)'视图中选择CustomersBindingNavigator控件上的CustomersBindingNavigatorSaveItem按钮(保存按钮),在属性窗口设置Enabled 为true,双击CustomersBindingNavigatorSaveItem按钮,修改其click事件过程代码:'保存对数据库记录的插入、删除和修改操作结果private Sub CustomersBindingNavigatorSaveItem_click(ByVal sender as System.Object, ByVal e as System.EventArgs) handles CustomersBindingNavigatorSaveItem.clickTryMyDataContext.SubmitChanges()MessageBox.Show("已经成功保存了数据库记录更新操作结果!","信息提示",MessageBoxButtons.OK,rmation)Me. CustomersBindingSource.clear()MyDataContext =New Dataclasses1DataContext()Me.CustomersBindingSource.DataSource =MyDataContext.CustomersCatch ex as ExceptionMessageBox.Show(ex.Message,"信息提示",MessageBoxButtons.OK,MessageBoxIcon.Error)End TryEnd Sub9)上述步骤使Dataclasses1DataContext已经具备默认的对数据库记录进行插入、删除和修改的管理能力。
10)修改Dataclasses1DataContext类的Insert默认操作步骤:在VS2010中选择“视图/服务器资源管理”菜单,则会弹出【服务器资源管理器】窗口,在此窗口中展开“数据连接\idcjomh\gsysql.Northwind.dbo\存储过程”节点,然后使用鼠标右键点击“存储过程”节点,在弹出的浮动菜单中选择“添加新存储过程”菜单项,系统新建的“dbo.StoredProcedure1”页面中输入该存储过程的SQL脚本命令,内容如下:ALTER PROCEDURE dbo.MyInsertCustomersStoredProcedure@CustomerId nchar(5),@CompanyName nvarchar(40),@ContactName nvarchar(30),@ContactTitle nvarchar(30),@Address nvarchar(60),@City nvarchar(15),@Region nvarchar(60),@PostalCode nvarchar(10),@Country nvarchar(15),@Phone nvarchar(24),@Fax nvarchar(24)ASset NOCOUNT off;insert into[dbo].[Customers](CustomerID,CompanyName,ContactName,ContactTitle, Address,City,Region,PostalCode,Country,Phone,Fax)values(@CustomerID,@CompanyName,@ContactName,@ContactTitle,@Addre ss,@City,@Region,@PostalCode,@Country,@Phone,@Fax);selectCustomerID,CompanyName,Contactname,contacttitle,address,city,region,postalcode, country,phone,fax from customers where (customerid=@customerid)RETURN11)完成对MyInsertCustomersStoredProcedure存储过程的SQL脚本编辑后,按下Ctrl +S保存,则在NorthWind数据库中将新增一个存储过程(MyInsertCustomersStoredProcedure)12)在【解决方案资源管理器】窗口中双击“DataClasses1.dbml“文件,则会打开此文件的设计视图。