学习笔记第九周

我是墩 我是墩     2022-09-28     497

关键词:

6.1数据集_数据关系

   创建树形视图(TreeView->Node节点)

SqlCommand sqlCommand = new SqlCommand();                                                    
            sqlCommand.Connection = sqlConnection;                                                          
            sqlCommand.CommandText =                                                                        
                "SELECT * FROM tb_Department;"                                                              
                + "SELECT * FROM tb_Major;"
                + "SELECT * FROM tb_Class;";          

 

依旧是先声明并实例化SQL命令,将连接属性指向SQL连接。然后指定SQL命令的命令文本,先插入表——学院表、专业表、班级表。

DataSet dataSet =new DataSet();    
sqlConnection.Open();                                                                           
            sqlDataAdapter.Fill(dataSet);                                                                   
            sqlConnection.Close(); 

 

然后声明并实例化数据集,接着填充数据集。

DataTabledepartmentTable=dataSet.Tables[0];                                                 
            DataTable majorTable = dataSet.Tables[1];                                                       
            DataTable classTable = dataSet.Tables[2];    

 

声明数据表并且对应着数据集中的相应的数据表。

DataRelation[] dataRelations =                                                                  
            {
                new DataRelation                                                                            
                    ("Department_Major"                                                                     
                    , departmentTable.Columns["No"]                                                         
                    , majorTable.Columns["DepartmentNo"]                                                    
                    , false)                                                                                
                , new DataRelation                                                                          
                    ("Major_Class"                                                                          
                    , majorTable.Columns["No"]                                                              
                    , classTable.Columns["MajorNo"]                                                         
                    ,false)                                                                                 
            };

用数组的方式来设置表与表之间的关联。取一个与表之间关系相关的名字。然后列出表相关联的两个列。最后一行的false表示不要要创建外键约束。本例题中写出了学院与专业之间的关系,专业与班级之间的关系。

 

 dataSet.Relations.AddRange(dataRelations);    

将数据关系批量添加到数据集中。

 

声明并实例化树形节点。

 List<TreeNode> treeNodes = new List<TreeNode>();   

 

这是添加第一层节点,遍历学院表中的每一行。然后声明新节点,添加。

foreach (DataRow departmentRow in departmentTable.Rows)                                         
            {
                TreeNode departmentNode = new TreeNode();                                                   
                departmentNode.Text = departmentRow["Name"].ToString();                                     
                treeNodes.Add(departmentNode);                    

 

然后先获取“下属”行即学院表所在行的子行。

foreach (DataRow majorRow in departmentRow.GetChildRows("Department_Major"))                                {
                    TreeNode majorNode = new TreeNode();                                                    
                    majorNode.Text = majorRow["Name"].ToString();                                           
                    departmentNode.Nodes.Add(majorNode);       

 

现在添加班级这一节点。其中有一个特殊的属性Tag(标签),写入编号,有利于之后的信息载入。信息插入时要对应相应的节点。

 foreach (DataRow classRow in majorRow.GetChildRows("Major_Class"))                                          {
                        TreeNode classNode = new TreeNode();                                                
                        classNode.Text = classRow["Name"].ToString();                                       
                        classNode.Tag = classRow["No"];                                                     majorNode.Nodes.Add(classNode);  } }  }

 

作为进一步的改进,我们可以使用Ado.net,它是面向对象的、用可视化的方法实现连接、LINQ(语言集成查询)。

首先我们要声明:

using System Security.cryptography;

 

 

 

然后我们以登录为例:

EduBase edubase =new EduBase();

 

用哈希函数将密码加密:

MD5 CryptoServiceProvider md5 =new

Byte[] passwordBytes=Encoding.Default.GetBytes(txb_password.text.Trim());

Byte[] passwordHashed=md5.ComputeHash(passwordBytes);

 

 

然后从数据库中取数据:

Var user=(from u in eduBase.User

Where u.No==this.txb_UserNo.Trim()&&u.password Hashed

Select u).FirstOrDefault();

 

FirstOrDefault()为取第一条记录没有则为默认值。

 

最后判断是否有数据,登录是否成功:

if (rowCount == 1)                                                            

            {

                MessageBox.Show("登录成功。");                                              

            }

            else                                                                                        {

                MessageBox.Show("用户号/密码有误,请重新输入!");                           //

                this.txb_Password.Focus();                                                  

                this.txb_Password.SelectAll();                                              

            }

 

第九周学习笔记

第九周学习笔记一、本周首先讲了ADO.NET的应用,使用ADO.NET连接数据库,它的代码更简便一些,但是运行速度较平常的代码慢。1.步骤:项目—添加—新建项,选用ADO.NETEntityDataModel模板。2.按照提示的步骤一直下去,直到数据库... 查看详情

第九周学习笔记

第九周学习总结——701小组  在完成小组作业的期间,SQLServer无法与连接到服务器。服务器名称( local)或计算机名(hsp07)都无法连接。  经检查发现SQLServer配置管理器里的SQLServer服务中的SQLServer(MSSQLSERVER协... 查看详情

第九周学习笔记

聚合: 1.当聚集函数遇到空值时,除COUNT(*)外,都跳过空值而出处理非空值。 2.WHERE子句中不能使用聚集函数。 3.聚集函数只能用于SELECT和GROUPBY中的HAVING语句。常用的聚合函数 1  count    2 ... 查看详情

第九周笔记

查看详情

第九周-学习进度条

 第九周所花时间(包括上课)28h代码量(行)240博客园(篇)8了解到的知识点android的Calender和listview控件 查看详情

20165316第九周学习总结

20165316《Java程序设计》第九周学习总结教材内容学习总结URL类URL类是java.net包中的一个重要的类,使用URL创建对象的应用程序称为客户端程序。一个URL对象通常包含最基本的三部分信息:协议、地址和资源URL对象的构造方法:publ... 查看详情

20165232第九周学习总结

第九周学习总结教材内容学习第十三章总结URL类URL类是java.net包中的一个重要的类,URL的实例封装着一个统一资源定位符(UniformResourceLocator),使用URL创建对象的应用程序称作客户端程序。一个URL对象通常包含最基本的三部分信息... 查看详情

第九周

 代码量1000行学习时间15h博客量一篇学习内容本周主要学习了Android的相关知识,对界面的制作,活动之间的传值,以及sqlite的使用 查看详情

20165222——第九周学习总结

20165222Java第九周学习总结教材学习内容-第十三章学习总结URL类是java.net包中的一个重要的类,URL的实例封装着一个统一资源定位符(UniformResourceLocator),使用URL创建对象的应用程序称作客户端程序。一个URL对象通常包含最基本的三... 查看详情

第九周总结

学习时长6h代码量300行博客三篇学习内容Android开发layout页面布局 查看详情

第九周学习进度表

第九周学习进度表:            第八周所花时间(包括上课)           6小时代码量(行)     & 查看详情

20165217第九周学习

学习内容总结URL类是java.net包中的一个重要的类,URL对象包含三部分信息:协议、地址和资源,使用URL创建对象的应用程序称为客户端程序。构造方法:publicURL(Stringprotocol,Stringhost,Stringfile)throwsMalformedURLExceptionInetAddress或用publicURL... 查看详情

第九周学习总结

#include<stdio.h>#include<time.h>#include<string.h>#include<windows.h>#include<conio.h>intexp=0;staticcharnum[233][2];intfind0() intexp1,x; for(exp1=0;num[exp1][0]!=‘ 查看详情

第九周学习总结

#include<stdio.h>#include<time.h>#include<string.h>#include<windows.h>#include<conio.h>intexp=0;staticcharnum[233][2];intfind0() intexp1,x; for(exp1=0;num[exp1][0]!=‘ 查看详情

学习进度条第九周

                   第六周所花时间12小时代码量300行左右博客量2了解到的知识点纠结于数据库管理操作,进展不大   查看详情

第九周读书笔记

软件工程师的成长-构建之法  这两周算是比较忙了,抽空读了一下《构建之法》中的软件工程师的成长这章,颇有感悟。  团队项目也是以个人为单位的,所以软件工程师的能力直接影响到团队项目的质量。这是... 查看详情

第九周学习总结-20175218(代码片段)

201752182018-2019-2《Java程序设计》第九周学习总结教材学习内容总结第十一章主要讲的就是JDBC与MySQL数据库,内容包括MySQL数据库管理系统,连接MySQL数据库,查询操作,更新、添加与删除操作,使用预处理语句,通用查询以及事务... 查看详情

201771010108-韩腊梅-第九周学习总结(代码片段)

第九周学习总结一、知识总结1.异常对象均为派生于Throwable类的一个实例,Throwable类下分为Errow类和Exception类,其中Errow类以及其子类描述了Java运行时的系统错误和资源耗尽错误,Exception类又可以下分为两类,即RuntimeException和其... 查看详情