第七周学习笔记

wllw6 wllw6     2022-10-08     232

关键词:

第七周学习笔记

本周笔记主要围绕的是适配器、数据表、数据网络视图的综合应用。

一、数据适配器和数据表的应用

利用数据网格视图来显示信息,实现载入,提交功能。数据库端数据也同步更新。

主要代码如下:

private void btn_Load_Click(object sender, EventArgs e)

{

SqlConnection sqlConnection = new SqlConnection();

sqlConnection.ConnectionString =

"Server=(local);Database=HISDatabase;uid=sa;[email protected]";

SqlCommand sqlCommand = new SqlCommand();

sqlCommand.Connection = sqlConnection;

sqlCommand.CommandText = "SELECT * FROM tb_doctor;";

SqlDataAdapter sqlDataAdapter = new SqlDataAdapter();

sqlDataAdapter.SelectCommand = sqlCommand;

DataTable doctorTable = new DataTable();

sqlConnection.Open();

sqlDataAdapter.Fill(doctorTable);

sqlConnection.Close();

this.dgv_Score.DataSource = doctorTable;

 

}

private void btn_Submit_Click(object sender, EventArgs e)

{

SqlConnection sqlConnection = new SqlConnection();

sqlConnection.ConnectionString =

"Server=(local);Database=HISDatabase;uid=sa;[email protected]";

SqlCommand insertCommand = new SqlCommand();

insertCommand.Connection = sqlConnection;

insertCommand.CommandText =

"INSERT tb_doctor"

+ "(no,name,sex,post,department,phone,birthdate)"

+ " VALUES(@no,@name,@sex,@post,@department,,@phone,@birthdate);";

 

insertCommand.Parameters.Add("@no", SqlDbType.Char, 10, "no");

insertCommand.Parameters.Add("@name", SqlDbType.VarChar, 0, "name");

insertCommand.Parameters.Add("@sex", SqlDbType.VarChar, 0, "sex");

insertCommand.Parameters.Add("@post", SqlDbType.VarChar, 0, "post");

insertCommand.Parameters.Add("@department", SqlDbType.VarChar, 0, "department");

insertCommand.Parameters.Add("@phone", SqlDbType.VarChar, 0, "phone");

insertCommand.Parameters.Add("@birthdate", SqlDbType.VarChar, 0, "birthdate");

 

 

SqlCommand updateCommand = new SqlCommand();

updateCommand.Connection = sqlConnection;

updateCommand.CommandText =

"UPDATE tb_doctor"

+ " SET [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected]"

+ " WHERE [email protected];";

updateCommand.Parameters.Add("@NewNo", SqlDbType.Char, 10, "no");

updateCommand.Parameters.Add("@name", SqlDbType.VarChar, 0, "name");

updateCommand.Parameters.Add("@sex", SqlDbType.VarChar, 0, "sex");

updateCommand.Parameters.Add("@post", SqlDbType.VarChar, 0, "post");

updateCommand.Parameters.Add("@department", SqlDbType.VarChar, 0, "department");

updateCommand.Parameters.Add("@phone", SqlDbType.VarChar, 0, "phone");

updateCommand.Parameters.Add("@birthdate", SqlDbType.VarChar, 0, "birthdate");

 

updateCommand.Parameters.Add("@OldNo", SqlDbType.Char, 10, "no");

updateCommand.Parameters["@OldNo"].SourceVersion = DataRowVersion.Original;

 

SqlCommand deleteCommand = new SqlCommand();                                                    //声明并实例化SQL命令;该命令用于删除;

deleteCommand.Connection = sqlConnection;                                                       //SQL命令的连接属性指向SQL连接;

deleteCommand.CommandText =                                                                     //指定SQL命令的命令文本;

"DELETE tb_doctor"

+ " WHERE [email protected];";

deleteCommand.Parameters.Add("@no", SqlDbType.Char, 10, "no");

SqlDataAdapter sqlDataAdapter = new SqlDataAdapter();                                           

//声明并实例化SQL数据适配器;

sqlDataAdapter.InsertCommand = insertCommand;                                                   //SQL数据适配器的属性InsertCommand指向用于插入记录的SQL命令;

sqlDataAdapter.UpdateCommand = updateCommand;                                                   //SQL数据适配器的属性UpdateCommand指向用于更新记录的SQL命令;

sqlDataAdapter.DeleteCommand = deleteCommand;                                                   //SQL数据适配器的属性DeleteCommand指向用于删除记录的SQL命令;

DataTable  doctorTable1 = (DataTable)this.dgv_Score.DataSource;                                 

//声明数据表,并指向数据网格视图的数据源;数据源默认类型为object,还需强制转换类型;

sqlConnection.Open();                                                                           //打开SQL连接;

int rowAffected = sqlDataAdapter.Update(doctorTable1);                                         

//SQL数据适配器根据学生数据表提交所有更新,并返回受影响行数;

sqlConnection.Close();                                                                          //关闭SQL连接;

MessageBox.Show("更新" + rowAffected.ToString() + "行。");

}

 技术分享图片

 技术分享图片

 技术分享图片

 

 

二、网络视图的应用

C#界面设置载入、根据工号搜索、根据姓名搜索、根据拼音缩写搜索四个按钮。载入按钮作用是载入医生信息表的信息。

C#主要代码如下:

public partial class frm_Doctor : Form

{

private DataTable doctorTable;

private DataView doctorViewByName;

 

public frm_Doctor()

{

InitializeComponent();

this.StartPosition = FormStartPosition.CenterScreen;

this.dgv_Doctor.AllowUserToAddRows = false; //数据网格视图不允许用户添加行

this.dgv_Doctor.RowHeadersVisible = false; //数据网格视图不允许用户添加行

this.dgv_Doctor.BackgroundColor = Color.White;//数据网格视图的背景色设为白色

this.dgv_Doctor.AutoSizeColumnsMode =

DataGridViewAutoSizeColumnsMode.AllCells; //数据网格视图的自动调整列宽模式设为显示所有单元格

}

 

private void btn_Load_Click(object sender, EventArgs e)

{

SqlConnection sqlConnection = new SqlConnection();

sqlConnection.ConnectionString =

"Server=(local);Database=HISDatabase;uid=sa;[email protected]";

SqlCommand sqlCommand = new SqlCommand();

sqlCommand.Connection = sqlConnection;

sqlCommand.CommandText = "SELECT * FROM  tb_doctor;"; 

//指定SQL命令的命令文本;该命令查询所有医生信息,以用作数据网格视图数据源

SqlDataAdapter sqlDataAdapter = new SqlDataAdapter();

sqlDataAdapter.SelectCommand = sqlCommand;

 

sqlDataAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;

//设置SQL数据适配器在缺少架构时的动作为追加主键,从而获取数据库中定义的主键

this.doctorTable = new DataTable();

//实例化本窗体的医生数据表,用于保存所有医生信息,以用作数据网格视图数据源

sqlConnection.Open();

sqlDataAdapter.Fill(this.doctorTable); //SQL数据适配器读取数据,并填充医生数据表

sqlConnection.Close();

this.doctorViewByName = new DataView();

//实例化本窗体的医生数据视图,用于按照名称进行快速查询

this.doctorViewByName.Table = this.doctorTable;//设置医生数据视图对应的数据表

this.doctorViewByName.Sort = "name  ASC";//设置课程数据视图对应的数据表

this.dgv_Doctor.Columns.Clear();//数据网格视图的列集合清空

this.dgv_Doctor.DataSource = this.doctorTable;//将数据网格视图的数据源设为医生数据表

this.dgv_Doctor.Columns["no"].HeaderText = "工号";//设置医生数据视图的排序条件,即查询所覆盖的列this.dgv_Doctor.Columns["name"].HeaderText = "姓名";

this.dgv_Doctor.Columns["post"].HeaderText = "职称";

this.dgv_Doctor.Columns["department"].HeaderText = "科室";

this.dgv_Doctor.Columns["Pinyin"].Visible = false;

 

//数据网格视图的最后一列的自动调整列宽模式设为填充(至数据网格视图右侧边缘)

this.dgv_Doctor.Columns[this.dgv_Doctor.Columns.Count - 1].AutoSizeMode =

DataGridViewAutoSizeColumnMode.Fill;

 

}

 

private void btn_SearchByNo_Click(object sender, EventArgs e)

{

DataRow searchResultRow = this.doctorTable.Rows.Find(this.txb_DoctorNo.Text.Trim());

DataTable searchResultTable = this.doctorTable.Clone();

searchResultTable.ImportRow(searchResultRow);

this.dgv_Doctor.DataSource = searchResultTable;

 

}

 

private void btn_SearchByName_Click(object sender, EventArgs e)

{

DataRowView[] searchResultRowViews =

this.doctorViewByName.FindRows(this.txb_DoctorName.Text.Trim());

DataTable searchResultTable = this.doctorTable.Clone();

foreach (DataRowView dataRowView1 in searchResultRowViews)

{

searchResultTable.ImportRow(dataRowView1.Row);

}

this.dgv_Doctor.DataSource = searchResultTable;

}

 

private void txb_Pinyin_TextChanged(object sender, EventArgs e)

{

DataRow[] searchResultRows =

this.doctorTable.Select("Pinyin LIKE ‘%" + this.txb_Pinyin.Text.Trim() + "%‘");

//借助本窗体的课程数据表的方法Select,并提供与SQL类似的谓词表达式作为查询条件,根据拼音缩写进行模糊查询(仅支持%通配符);查询将返回数据行数组

DataTable searchResultTable = this.doctorTable.Clone();

foreach (DataRow row in searchResultRows)

{

searchResultTable.ImportRow(row);

}

 

this.dgv_Doctor.DataSource = searchResultTable;

}

}

运行结果如下:

载入:

 技术分享图片

 

根据工号搜索:

 技术分享图片

 

根据姓名搜索:

 技术分享图片

 

根据拼音缩写搜索:

 技术分享图片

 

《第七周学习笔记》

教材学习总结1.下载安装MySQL数据库管理系统。2.MySQL数据库的基本运用。3.下载JDBC-MySQL数据库驱动.加载JDBC-MySQL数据库驱动4.事务:步骤一用setAutoCommit(booleanb)方法关闭自动提交模式、步骤二用commit()方法处理事务、步骤三用... 查看详情

第七周学习笔记

 思维导图建库建表知识要点1.建库之前需要在指定磁盘中新建文件夹,供各类文件存放ON(NAME=‘xxx‘,FILENAME=‘路径xxx.mdf‘)LOGON(NAME=‘xxx‘,FILENAME=‘路径xxx.ldf‘); 示例代码CREATE DATABASE 哗啦啦啦啦小药库ON(NAME=‘Data... 查看详情

第七周学习笔记

一.数据库适配器1.1数据表中数据插入  注释;1.insertCommand.Parameters.Add("@No",SqlDbType.Char,10,"No");此处用到add用法,是向SQL命令的参数集合添加参数的名称、SQLServer数据类型、长度(仅用于定长类型)、所绑定的数据表中的列... 查看详情

第七周笔记

查看详情

第七周笔记150206201

  查看详情

第七周学习总结

码云链接 查看详情

学习进度条(第七周)

第七周的学习进度条  第七周所花时间1700分钟代码量3200行博客量2篇  了解知识点一个简单的web管理系统的建立,四则运算的web应用。大数据的学习 查看详情

第七周-学习进度条

 第七周所花时间(包括上课)20h代码量(行)300博客园(篇)2了解到的知识点sqlite的基础知识 查看详情

第七周学习进度表

第七周学习进度表时间第七周所花时间10个小时左右代码量400行左右博客量3篇了解到的知识点Javabean的运用,web网页的跳转 查看详情

学习进度第七周

时间7小时代码量200行博客1篇所学知识团队开发、PHP、HTML  查看详情

第七周学习进度总结

 记录时间:第七周所花时间(包括上课)8h代码量(行)约1000行博客量(篇)1篇了解到的知识点地铁售票系统的编写思路和方法 查看详情

第七周学习进度表

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

第七周java学习报告-彭锁群

对于顺序分支等等进行了初步了解。 查看详情

20165309第七周学习总结

201653092017-2018-2《Java程序设计》第七周学习总结教材学习内容总结第11章JDBC与MySQL数据库JDBC的操作:(1)与一个数据库建立连接。(2)向数据库发送SQL语句。(3)处理数据库返回的结果。连接数据库P329查询操作得到SQL查询语句对象处理... 查看详情

20165316第七周学习总结

20165316第七周学习总结学习中遇到的问题和解决过程主要还是数据库MySQL的安装比较麻烦,为此我还重装了Java书上原话:MySQL数据库服务器启动后,应用程序为了能和数据库交互信息,必须首先和MySQL数据库服务器上的数据库建立... 查看详情

第七周总结

学习时间 8h代码数量200博客1篇学习内容对地铁系统进行了修改,病下载了AndroidStdio及其sdk,为App开发做准备。 查看详情

暑假学习第七周

这是暑假第七周了,在这周中我还是继续看java视频复习Java,了解一些在书上遗漏以及忘掉的知识点。这几天我在网上学习了java的链表类的一些基本知识,C、C++的链表和java的有些不一样,在c中链表是用指针来进行操作的,而在... 查看详情

20165214第七周学习任务(代码片段)

201652142017-2018-2《Java程序设计》第七周学习总结教材学习内容总结11.1介绍了如何下载MySQL社区版,我跟着流程下载成功了。11.2介绍了如何启动MySQL数据库服务器;可以使用mysqadmin-r[用户名]-p[密码]来修改密码。初始化成功后出现... 查看详情