【太原正规代孕生育中心】【微:13802269370】太原代孕包成功,太原代孕包性别,供卵代孕,三代试管婴儿选性别,供卵试管婴儿代孕,十年老品牌代孕公司,
一.思维导图
二.常用知识点描述
1.DataAdapter对象
充当DataSet和数据源之间用于检索和保存数据的桥梁。DataAdapter类代表用于填充DataSet以及更新数据源的一组数据库命令和一个数据库连接
1.1属性和方法
属性:
SelectCommand引用从数据源中检索行的Command对象。
InsertCommand引用将插入的行从DataSet写入数据源的Command对象。
UpdateCommand引用将修改的行从DataSet写入数据源的Command对象。
DeleteCommand引用从数据源中删除行的Command对象。
方法:
Fill。使用SqlDataAdapter的这个方法,从数据源增加或刷新行,并将这些行放到DataSet表中。Fill方法调用SelectCommand属性所指定的SELECT语句。
Update。使用DataAdapter对象的这个方法,将DataSet表的更改传送到相应的数据源中。该方法为DataSet的DataTable中每一指定的行调用相应的INSERT、UPDATE或DELETE命令。
2.DataTable对象
一个临时保存数据的网格虚拟表(表示内存中数据的一个表)
2.1属性和方法
属性
Columns:返回属于这个表的列的集合
DataSet:获得包含这个表的DataSet
DefaultView:获得表的自定义视图,它可能包含已过滤的视图或游标位置
MinimumCapacity:获得或设置表中行的初始数目(默认为25)
Rows:返回属于这个表的行集合
TableName:获得或设置表的名称。这个属性还可以被指定为构造函数的参数
方法
AcceptChanges:提交对该表的所有修改
NewRow:添加一个新的DataRow
3.ComboBox控件
3.1属性和方法
属性
DataSource :获取或设置此 ComboBox 的数据源。
DisplayMember :获取或设置要为此 ListControl 显示的属性。
SelectedText :获取或设置 ComboBox 的可编辑部分中选定的文本。
ValueMember :获取或设置一个属性,该属性将用作 ListControl 中的项的实际值。
SelectedValue:获取或设置由 ValueMember 属性指定的成员属性的值。
注:
DisplayMember 与ValueMember 属性的区别: DisplayMember绑定的是需显示的字段,ValueMember绑定的是对应的值 。
方法
Focus为控件设置输入焦点。
三.实例演示
1.关于TextBox和ComboBox的输入输出。
1.1输入
(1)连接数据库。这里使用到了configurationManager类(配置管理器),要引用using System.Configuration这个包。(并且需要在解决方案资源管理器里找到类文件选择“引用”,添加上去才能使用)。配置管理器的路径放在了App.config文件(配置文件)里。
<?xml version="1.0" encoding="utf-8" ?> //App.config文件代码 <configuration> <connectionStrings> <add name="Sql" connectionString="Server=(local);Database=MyHospital;Integrated Security=false;User id=SqlLogin1;Password=$q17o9!n1;FailOver Partner=local" providerName="System.Data.SqlClient"/> <add name="Sql2" connectionString="Server=(local);Database=MyHospital;Integrated Security=sspi" providerName="System.Data.SqlClient"/> </connectionStrings> </configuration>
(2)连接好数据库后就可以开始输入数据。代码如下。
1 SqlConnection sqlConnection = new SqlConnection(); 2 sqlConnection.ConnectionString = 3 ConfigurationManager.ConnectionStrings["Sql"].ConnectionString; 4 SqlCommand sqlCommand = new SqlCommand(); 5 sqlCommand.Connection = sqlConnection; 6 sqlCommand.CommandText = 7 "INSERT orders (SupplyID,OrderKinds,OrderDate,GetDate,ProducePla) VALUES(@SupplyID,@OrderKinds,@OrderDate,@GetDate,@ProducePla);"; / 8 sqlCommand.Parameters.AddWithValue("@SupplyID",comb_Supplyname.SelectedValue); 9 sqlCommand.Parameters.AddWithValue("@OrderKinds", this.Order.Text.Trim()); 10 sqlCommand.Parameters.AddWithValue("@OrderDate", this.dateTimePicker1.Value); 11 sqlCommand.Parameters.AddWithValue("@GetDate", this.dateTimePicker2.Value); 12 sqlCommand.Parameters.AddWithValue("@ProducePla", this.Address.Text.Trim()); 13 sqlConnection.Open(); 14 int rowAffected = sqlCommand.ExecuteNonQuery(); 15 sqlConnection.Close(); 16 if (rowAffected == 1) 17 { 18 MessageBox.Show("添加成功。"); 19 ordersHelper.order = Order.Text.Trim(); 20 if (dateTimePicker2.Value == DateTime.Now) 21 { 22 ordersHelper.state = "入库"; 23 } 24 else { 25 ordersHelper.state = "未入库"; 26 } 27 } 28 else 29 { 30 MessageBox.Show("添加失败!"); 31 }
1.2输出
(1)连接数据库后,SQL数据适配器sqlDataAdapter读取数据,并填充数据表。将下拉框的成员变量设置为数据表的名称列,将下拉框的值变量设置为数据表的编号列。
1 SqlConnection sqlConnection = new SqlConnection(); 2 sqlConnection.ConnectionString = 3 ConfigurationManager.ConnectionStrings["Sql"].ConnectionString; 4 SqlCommand sqlCommand = new SqlCommand(); 5 sqlCommand.Connection = sqlConnection; 6 sqlCommand.CommandText = "SELECT * FROM supplyer;"; 7 SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(); 8 sqlDataAdapter.SelectCommand = sqlCommand; 9 DataTable supplyer = new DataTable(); 10 sqlConnection.Open(); 11 sqlDataAdapter.Fill(supplyer); 12 this.comb_Supplyname.DataSource = supplyer; 13 this.comb_Supplyname.DisplayMember = "Supplyname"; 14 this.comb_Supplyname.ValueMember = "SupplyID"; 15 SqlDataReader sqlDataReader = sqlCommand.ExecuteReader(); 16 if (sqlDataReader.Read()) 17 { 18 19 this.comb_Supplyname.SelectedValue = (int)sqlDataReader["SupplyID"]; 20 21 } 22 sqlDataReader.Close();
2.关于DataGridView的输入输出
2.1输出
1 SqlConnection sqlConnection = new SqlConnection(); //声明并实例化SQL连接; 2 sqlConnection.ConnectionString = 3 "Server=(local);Database=EduBaseDemo;Integrated Security=sspi"; //在字符串变量中,描述连接字符串所需的服务器地址、数据库名称、集成安全性(即是否使用Windows验证); 4 SqlCommand sqlCommand = new SqlCommand(); //声明并实例化SQL命令; 5 sqlCommand.Connection = sqlConnection; //将SQL命令的连接属性指向SQL连接; 6 sqlCommand.CommandText = "SELECT * FROM tb_Student;"; //指定SQL命令的命令文本;该命令查询所有学生; 7 SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(); //声明并实例化SQL数据适配器; 8 sqlDataAdapter.SelectCommand = sqlCommand; //将SQL数据适配器的查询命令属性指向SQL命令; 9 DataTable studentTable = new DataTable(); //声明并实例化数据表,用于保存所有学生,以用作数据网格视图的数据源; 10 sqlConnection.Open(); //打开SQL连接; 11 sqlDataAdapter.Fill(studentTable); //SQL数据适配器读取数据,并填充学生数据表; 12 sqlConnection.Close(); //关闭SQL连接; 13 this.dgv_Score.DataSource = studentTable;
2.2输出(更新)
SqlConnection sqlConnection = new SqlConnection(); //声明并实例化SQL连接; sqlConnection.ConnectionString = "Server=(local);Database=EduBaseDemo;Integrated Security=sspi"; //在字符串变量中,描述连接字符串所需的服务器地址、数据库名称、集成安全性(即是否使用Windows验证); SqlCommand insertCommand = new SqlCommand(); //声明并实例化SQL命令;该命令用于插入记录; insertCommand.Connection = sqlConnection; //将SQL命令的连接属性指向SQL连接; insertCommand.CommandText = //指定SQL命令的命令文本; "INSERT tb_Student" + "(No,Name,Gender,BirthDate,Class,Speciality)" + " VALUES(@No,@Name,@Gender,@BirthDate,@Class,@Speciality);"; insertCommand.Parameters.Add("@No", SqlDbType.Char, 10, "No"); //向SQL命令的参数集合添加参数的名称、SQL Server数据类型、长度(仅用于定长类型)、所绑定的数据表中的列名; insertCommand.Parameters.Add("@Name", SqlDbType.VarChar, 0, "Name"); insertCommand.Parameters.Add("@Gender", SqlDbType.VarChar, 0, "Gender"); insertCommand.Parameters.Add("@BirthDate", SqlDbType.VarChar, 0, "BirthDate"); insertCommand.Parameters.Add("@Class", SqlDbType.VarChar, 0, "Class"); insertCommand.Parameters.Add("@Speciality", SqlDbType.VarChar, 0, "Speciality"); SqlCommand updateCommand = new SqlCommand(); //声明并实例化SQL命令;该命令用于更新记录; updateCommand.Connection = sqlConnection; //将SQL命令的连接属性指向SQL连接; updateCommand.CommandText = //指定SQL命令的命令文本; "UPDATE tb_Student" + " SET No=@NewNo,Name=@Name,Gender=@Gender,BirthDate=@BirthDate,Class=@Class,Speciality=@Speciality" + " WHERE No=@OldNo;"; updateCommand.Parameters.Add("@NewNo", SqlDbType.Char, 10, "No"); //向SQL命令的参数集合添加参数的名称、SQL Server数据类型、长度(仅用于定长类型)、所绑定的数据表中的列名; updateCommand.Parameters.Add("@Name",SqlDbType.VarChar,0,"Name"); updateCommand.Parameters.Add("@Gender", SqlDbType.VarChar, 0, "Gender"); updateCommand.Parameters.Add("@BirthDate", SqlDbType.VarChar, 0, "BirthDate"); updateCommand.Parameters.Add("@Class", SqlDbType.VarChar, 0, "Class"); updateCommand.Parameters.Add("@Speciality", SqlDbType.VarChar, 0, "Speciality"); 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_Student" + " WHERE No=@No;"; 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 studentTable1 = (DataTable)this.dgv_Score.DataSource; //声明数据表,并指向数据网格视图的数据源;数据源默认类型为object,还需强制转换类型; sqlConnection.Open(); //打开SQL连接; int rowAffected = sqlDataAdapter.Update(studentTable1); //SQL数据适配器根据学生数据表提交所有更新,并返回受影响行数; sqlConnection.Close(); //关闭SQL连接; MessageBox.Show("更新" + rowAffected.ToString() + "行。");
三.关于PitureBox的输入与输出
3.1输出
1 SqlConnection sqlConnection = new SqlConnection(); //声明并实例化SQL连接; 2 sqlConnection.ConnectionString = 3 "Server=(local);Database=EduBaseDemo;Integrated Security=sspi"; //在字符串变量中,描述连接字符串所需的服务器地址、数据库名称、集成安全性(即是否使用Windows验证); 4 SqlCommand sqlCommand = new SqlCommand(); //声明并实例化SQL命令; 5 SqlCommand sqlCommand2 = new SqlCommand(); //声明并实例化SQL命令; 6 sqlCommand.Connection = sqlConnection; //将SQL命令的连接属性指向SQL连接; 7 sqlCommand2.Connection = sqlConnection; //将SQL命令的连接属性指向SQL连接; 8 sqlCommand.CommandText = "SELECT * FROM tb_Class;"; //指定SQL命令的命令文本;该命令查询所有班级,以用作下拉框数据源; 9 sqlCommand2.CommandText = "SELECT * FROM tb_Student WHERE No=@No;"; //指定SQL命令的命令文本;该命令查询指定学生; 10 sqlCommand2.Parameters.AddWithValue("@No", "3120707001"); //向SQL命令的参数集合添加参数的名称、值; 11 SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(); //声明并实例化SQL数据适配器,同时借助构造函数,将其SelectCommand属性设为先前创建的SQL命令; 12 sqlDataAdapter.SelectCommand = sqlCommand; //将SQL数据适配器的查询命令属性指向SQL命令; 13 DataTable classTable = new DataTable(); //声明并实例化数据表,用于保存所有班级,以用作下拉框数据源; 14 sqlConnection.Open(); //打开SQL连接; 15 sqlDataAdapter.Fill(classTable); //SQL数据适配器读取数据,并填充班级数据表; 16 this.cmb_Class.DataSource = classTable; //将班级下拉框的数据源设为班级数据表; 17 this.cmb_Class.DisplayMember = "Name"; //将班级下拉框的显示成员设为班级数据表的名称列; 18 this.cmb_Class.ValueMember = "No"; //将班级下拉框的值成员设为班级数据表的编号列; 19 SqlDataReader sqlDataReader = sqlCommand2.ExecuteReader(); //调用SQL命令的方法ExecuteReader来执行命令,并获取数据阅读器; 20 byte[] photoBytes = null; //声明字节数组,用于保存照片数据;但先赋予空值; 21 if (sqlDataReader.Read()) //若数据阅读器成功读取到下一条记录(首次查询则表示第一条记录); 22 { 23 24 photoBytes = 25 (sqlDataReader["Photo"] == DBNull.Value ? null : (byte[])sqlDataReader["Photo"]); //根据照片是否为数据库空值,分别将空值、转为字节数组的照片数据赋予事先声明的字节数组; 26 } 27 sqlDataReader.Close(); //关闭数据阅读器(同时关闭连接); 28 if (photoBytes != null) //若学生的照片非空; 29 { 30 MemoryStream memoryStream = new MemoryStream(photoBytes); //声明并实例化内存流,用于读取照片的字节数据; 31 this.ptb_Photo.Image = Image.FromStream(memoryStream); //调用图像的静态方法FromStream从内存流中读取图像,并赋予图像框; 32 }
3.2输入
1 MemoryStream memoryStream = new MemoryStream(); //声明并实例化内存流,用于读取照片的字节数据; 2 this.ptb_Photo.Image.Save(memoryStream, ImageFormat.Bmp); //调用图像框的图像的静态方法Save,将图像保存至内存流; 3 byte[] photoBytes = new byte[memoryStream.Length]; //声明并实例化字节数组,用于保存照片数据;数组长度对应内存流长度; 4 memoryStream.Seek(0, SeekOrigin.Begin); //保存后的内存流的偏移位置在末尾,需通过查找来将偏移位置设为起始; 5 memoryStream.Read(photoBytes, 0, photoBytes.Length); //将内存流读入字节数组; 6 SqlConnection sqlConnection = new SqlConnection(); //声明并实例化SQL连接; 7 sqlConnection.ConnectionString = 8 "Server=(local);Database=EduBaseDemo;Integrated Security=sspi"; //在字符串变量中,描述连接字符串所需的服务器地址、数据库名称、集成安全性(即是否使用Windows验证); 9 SqlCommand sqlCommand = new SqlCommand(); //声明并实例化SQL命令; 10 sqlCommand.Connection = sqlConnection; //将SQL命令的连接属性指向SQL连接; 11 sqlCommand.CommandText = //指定SQL命令的命令文本; 12 "UPDATE tb_Student" 13 + " SET Name=@Name,Gender=@Gender,BirthDate=@BirthDate,ClassNo=@ClassNo,Speciality=@Speciality,Photo=@Photo" 14 + " WHERE No=@No;"; 15 sqlCommand.Parameters.AddWithValue("@Name", this.txb_Name.Text.Trim()); //向SQL命令的参数集合添加参数的名称、值; 16 sqlCommand.Parameters.AddWithValue("@Gender", this.rdb_Male.Checked); 17 sqlCommand.Parameters.AddWithValue("@BirthDate", this.dtp_BirthDate.Value); 18 sqlCommand.Parameters.AddWithValue("@ClassNo", (int)this.cmb_Class.SelectedValue); 19 sqlCommand.Parameters.AddWithValue("@Speciality", this.txb_Speciality.Text.Trim()); 20 sqlCommand.Parameters.AddWithValue("@Photo", photoBytes); 21 sqlCommand.Parameters.AddWithValue("@No", "3120707001"); 22 sqlConnection.Open(); //打开SQL连接; 23 int rowAffected = sqlCommand.ExecuteNonQuery(); //调用SQL命令的方法ExecuteNonQuery来执行命令,向数据库写入数据,并返回受影响行数; 24 sqlConnection.Close(); //关闭SQL连接; 25 MessageBox.Show("更新" + rowAffected.ToString() + "行。");