




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VS2010创建LINQ to SQL类的小结 (数据库SQL Server2008) 使用对象关系设计器(O/R 设计器)可以将 LINQ to SQL 类映射到数据库中的表。这些映射的类也称为“实体类”。 实体类的属性映射到表的列,您可以将数据绑定到 Windows 窗体上的控件。 这次报告,您将学习如何使用 O/R 设计器创建映射到 Student数据库中的表的实体类,然后将在 Windows 窗体应用程序上显示数据。1、 操作步骤: 打开 O/R 设计器在“文件”菜单上单击“新建项目”。在“新建项目”对话框中的“模板”窗格中,单击“Windows 窗体应用程序”,将项目命名为“LINQToSQLSample” 然后单击“确定”。一个新的 Windows 窗体项目随即打开。在“项目”菜单上单击“添加新项”。单击“LINQ to SQL 类”模板,然后在“名称”框中键入“Student.dbml”,单击“添加”。一个空的“LINQ to SQL 文件”(Student.dbml) 即被添加到该项目中,并且 O/R 设计器将打开。O/R 设计器由两个设计图面组成:左侧的“实体”窗格,以及右侧的“方法”窗格区域。“实体”窗格是主设计图面,其中显示在文件中定义的实体类。“方法”窗格是显示映射到存储过程和函数的 DataContext 方法的设计图面。通过右击 O/R 设计器,然后单击“隐藏方法窗格”,可以隐藏“方法”窗格。在本课中您可以在 DataContext 方法(O/R 设计器)中了解有关该窗格的更多信息。单击主设计图面,并通过在“属性窗口”中查看“名称”属性来验证其名称是否为 StudntDataContext。通过将数据库表从“数据库资源管理器”拖动到 O/R 设计器图面上,可以创建实体类。但是必须先创建到数据库的连接。此过程与 获取所需的信息:连接到现有的数据库中介绍的过程类似,只不过在此中会使用 SQL Server Express 数据库。 连接到 Student数据库在“视图”菜单上单击“数据库资源管理器”。“数据库资源管理器”随即打开。在“数据库资源管理器”工具栏中单击“连接到数据库”按钮。在“选择数据源”窗口中单击“Microsoft SQL Server 数据库文件”,然后单击“继续”。“添加连接”对话框随即打开。在“添加连接”对话框中,确保数据源为“Microsoft SQL Server 数据库文件 (SqlClient)”。单击“浏览”,然后找到并选择“Student.mdf”数据库。单击“打开”。单击“测试连接”以验证连接是否成功。单击“确定”关闭“添加连接”对话框。 创建实体类 现在,Student 数据库中的表在“数据库资源管理器”中是可见的。可以将这些表从“数据库资源管理器”拖到“O/R 设计器”上。这会自动创建实体类,这些实体类的属性映射到从“数据库资源管理器”中拖动的表中的列。在“数据库资源管理器”中,展开“Student.mdf”,然后展开“表”。将“Student”从“数据库资源管理器”拖到 O/R 设计器图面上。如果系统提示是否将数据文件复制到项目中,请单击“是”。将创建一个名为“Student”的实体类。该类具有与“Student”表中的列相对应的属性。现在已创建了实体类,您可以通过运行“数据源配置向导”将这些类添加到“数据源”窗口中。 将实体类作为对象数据源添加到“数据源”窗口中在“生成”菜单上单击“生成 LINQToSQLSample”。在“数据”菜单上单击“显示数据源”。在“数据源”窗口中,单击“添加新数据源”。单击“选择数据源类型”页上的“对象”,然后单击“下一步”。展开“LINQToSQLSample”节点,并找到“Student”类。说明:如果“Student”类不可用,则单击“取消”,生成项目,然后重新运行向导。单击“完成”以创建数据源并将“Student”实体类添加到“Student”窗口。 将 Windows 窗体上的控件绑定到实体类 通过将表或字段从“数据源”窗口拖到 Windows 窗体上,可以将被数据绑定到实体类的控件添加到该窗体中。 添加绑定到实体类的控件在“解决方案资源管理器”中右击 Form1,然后单击“视图设计器”。在“数据源”窗口中,展开“Student”。单击“dataGridView”旁边的下拉箭头,这会将一个标签和一个导航工具栏添加到窗体上。在“解决方案资源管理器”中右击 Form1,然后单击“查看代码”。将下面的代码添加到窗体中 Form 类的顶部,任何特定方法之外。复制代码 StudentSimple1DataContext stuDataContext = new StudentSimple1DataContext()双击该窗体,为 Form_Load 事件创建一个事件处理程序。将以下代码添加到事件处理程序中:复制代码 private void Form1_Load(object sender, EventArgs e) using (StudentSimple1DataContext stuDataContext = new StudentSimple1DataContext() / IList pModels = dc.Student.Where(o=o.Sno!=null).ToList(); IList pModels = (from stu in stuDataContext.Student select stu).ToList(); dgv_Student.DataSource = pModels; / pModel.OperatorID = pModel.UserID; / pModel.OperatorName = pModel.UserName; / pModel.OperateDate = DateTime.Now; 按 F5 运行代码。 启用保存按钮(可选择)在“设计”视图中,选择导航工具栏上的保存按钮。(该按钮带有软盘图标。)在“属性”窗口中,将“Enabled”属性设置为“True”。双击保存按钮创建一个事件处理程序并切换到代码编辑器。将下面的代码添加到保存按钮事件处理程序中:复制代码 StudentSimple1DataContext.SubmitChanges()按 F5 运行代码。更改某一 Shipped Date 字段中的值,然后按 Tab 键提交更改。单击“保存数据”按钮。关闭窗体。按 F5,验证所做的更改是否已保存。2、 LINQ to SQL之增删改查 LINQ to SQL类实际上是对象化数据库对象,使得我们对数据库的操作转变为面向传统面向对象的操作。它完成了对数据库的映射,集成了很多属性和方法,我们只需要用面向对象的思路去使用这些属性和方法就能够很好地与数据库进行交互。同时,这样做也节省了我们在开发频繁地对数据库进行交互的程序时的时间和工作量。界面设计如下:为四个button控件添加事件响应处理。分别处理查询,修改,插入,删除操作。页面代码如下: StudentSimple1DataContext; /声明LINQ to SQL类对象,这是与数据库交互的桥梁,就是上面所说的与数据库相对应的对象 数据库的查询 private void Form1_Load(object sender, EventArgs e) using (StudentSimple1DataContext stuDataContext = new StudentSimple1DataContext() / IList pModels = dc.Student.Where(o=o.Sno!=null).ToList(); IList pModels = (from stu in stuDataContext.Student select stu).ToList(); dgv_Student.DataSource = pModels; / pModel.OperatorID = pModel.UserID; / pModel.OperatorName = pModel.UserName; / pModel.OperateDate = DateTime.Now; 数据库的增加界面设计如下:相关代码如下: private void button1_Click(object sender, EventArgs e) StudentSimple1DataContext stuDataContext = new StudentSimple1DataContext(); Student student = new Student(); student.Sno = Convert.ToInt32(textBox1.Text); student.Sname = textBox2.Text; if (radioButton1.Checked) student.Ssex = 男D; else student.Ssex = 女?; student.Sage = Convert.ToInt32(textBox4.Text); student.Sdept = textBox5.Text; stuDataContext.Student.InsertOnSubmit(student); stuDataContext.SubmitChanges(); IList pModels = (from stu in stuDataContext.Student select stu).ToList(); MessageBox.Show(添加成功| , AddStu); / dgv_Student.DataSource = pModels; 数据库的删除界面设计如下:相关代码如下:private void button1_Click(object sender, EventArgs e) using (StudentSimple1DataContext stuDataContext = new StudentSimple1DataContext() Student student = new Student(); int sno = Convert.ToInt32(textBox1.Text); var query = from stu in stuDataContext.Student /查询数簓据库中满足条件的数簓据集 where stu.Sno = sno select stu; /this.DataContext.Tokens.Attach(aTokenOfPeriodicalThesis); IList stuList = new List(); stuList = query.ToList(); stuDataContext.Student.DeleteAllOnSubmit(stuList); /stuDataContext.Student.DeleteOnSubmit(student); stuDataContext.SubmitChanges(); MessageBox.Show(删?除y成功|, delStu); 数据库的修改界面设计如下:相关代码如下: private void button2_Click(object sender, EventArgs e) using (StudentSimple1DataContext stuDataContext = new StudentSimple1DataContext() int sno = Convert.ToInt32(textBox1.Text); var query = from stu in stuDataContext.Student /查询数簓据Y库a中D满足?条?件t的?数簓据Y集 where stu.Sno = sno select stu; /this.DataContext.Tokens.Attach(aTokenOfPeriodicalThesis); Student student = query.ToList().FirstOrDefault(); /stuDataContext.Student.DeleteOnSubmit(stuList); /stuDataContext.Student.DeleteOnSubmit(stuList); /stuDataContext.SubmitChanges(); /StudentSimple1DataContext stuDataContext = new StudentSimple1DataContext(); /Student student = new Student(); student.Sno =sno; student.Sname = textBox2.Text; if (radioButton1.Checked) student.Ssex = 男D; else student.Ssex = 女?; student.Sage = Convert.ToInt32(textBox4.Text); student.Sdept = textBox5.Text; /stuD
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 南京创新周活动策划方案(3篇)
- 光纤广播施工方案(3篇)
- 路基验槽施工方案(3篇)
- 江苏eps墙体施工方案(3篇)
- 英语口译考试题库及答案
- 北京市门头沟区2023-2024学年八年级下学期期末考试道德与法制考题及答案
- 北京市门头沟区2023-2024学年八年级上学期期末考试地理试题及答案
- 辛亥革命历史题目及答案
- 家有小白800字7篇
- 有关我喜欢的的动物作文高一的(9篇)
- 急诊专科护士进修汇报课件
- 2024年云网安全应知应会考试题库
- 统编版(2024新版)七年级上册《道德与法治》教材探究参考答案
- 风电场投资财务模型构建
- 3.15 秦汉时期的科技与文化 课件 2024-2025学年七年级历史上学期
- 10J113-1内隔墙-轻质条板(一)
- 高层建筑火灾扑救
- 香港中文大学博士英文复试模板
- 南京大学介绍
- 新项目方法能力验证报告(固定污染源废气氯化氢的测定硝酸银容量法)
- DL-T+2081-2020电力储能用超级电容器试验规程
评论
0/150
提交评论