C#——教务管理系统设计03(20181004)

本文详细介绍了使用C#进行数据库操作的最佳实践,包括避免使用MessageBox.show进行消息提示、更新DataGridView的正确方法、如何设计表类、使用参数化SQL语句防止SQL注入、封装SqlHelper类以简化数据库操作、以及DataReader的高效使用技巧。

笔记

1.插入成功时(或者其他情况)不要用Messagebox.show,会阻塞线程,可以使用this.text = "插入成功!";
2.插入成功时,更新DataGridView 。用Form.Load();
3.一个表设计一个类,每列存储为属性,不是字段。
4.datagridview属性SelectionMode = FullRowSelect(CellSelect) 任务关掉启用添加、启用编辑、启用删除
5. //添加删除前提示
            //DialogResult result = messagebox.show("确定要删除吗?","操作提示",messageBox.OKCancel,MessageBoxIcon.Warning);
            //if(result == System.Windows.Forms.DialogResult.OK)
            //{删除操作~}
6.登陆BUG: 用户名 :abcdf' or 1=1 --(后面可以加drop database ttt/and pwd ='34324')  //SQL注入攻击
7.使用带参数的SQL语句或者是存储过程 可以避免上述问题
8.@+参数
9.#region #endregion可以添加收缩
10.SqlHelper封装类
 10.1 应用程序配置文件 
  App.config :  
  <connectionStrings>
    <add name =" mysqlserver" connectionString =" Data Source = localhost ; Initial Catalog = StudyOprationSystem ; Integrated Security = True"/>
  </connectionStrings>
 10.2 添加引用 .net -> System.configration 
 10.3 连接字符串 private static readonly string conStr = ConfigurationManager.ConnectionStrings["mysqlserver"].ConnectionString;
 10.4 封装方法
11.向ComboBox组件中添加值
 ComboBox.Items.Add("第一项");


DataReader使用

DataReader使用方法
	string	sql = select * from table;
	using(SqlDataReader reader = cmd.executeReader());
		{
			//获取查询的数据在reader对象中
			//1.获取数据之前,先判断是否查询到了数据
			if(reader.HasRows)
			{
			//2.如果有数据,一条一条获取数据
			//每次获取数据之前,都要先调用reader.Read()方法,向后移动一条数据,
			//如果成功移动到某条数据上,返回true,否则返回false
			while(reader.Read())
				{
				 //获取当前reader指向的数据
				 //reader.FieldCount,可以获取当前查询语句查询出的列的个数
				 for(int i = 0 ; i < reader.FieldCount() ; i++)
				  {
					//当遇到数据库中null值的时候,通过reader.GetValue()或者reader[]索引器
					//获取的列的值,拿到的是DBNull.Value,不是C#的null。而DBNull.Value的To
					//String()方法返回的是空字符串,所以没有报错。
					//通过reader[]索引器,可以使用列名来获取列的值
					Console.Write(reader[i]+'\t');

					//根据列名获取列的索引
					//reader.GetOrdinal();

					
					//GetValue()只能通过索引来获取列的值
					//Console.Write(reader.GetValue(i)+'\t');

					//通过下面这种方式读取到的数据直接就是对应的类型,不是object类型,读取更方便。
					//********reader.GetXxxx();//使用强类型数据转换
				  }
				  Console.WriteLine();
				
				}
			}
			else
			{
			//没有查询到数据,提示。
			Messagebox.Show("没有查询到任何数据!");
			}

		} 


/*DataReader的特点:
1.只读(自能读取数据,不能修改)、只进(只能一条一条向前移动,不能跳跃,不能后退)。
2.使用reader时必须保证连接是打开状态。使用完毕后,必须把reader关闭,释放。同时关闭连接对象。
3.默认情况下DataReader要求独占一个连接对象。

*/


//注意:通过reader.GetXXX()方式获取数据时,如果数据为null则报异常,需要手动写代码来判断数据是否为空
while(reader.HasRows)
{
	//判断是否为空,正则表达式
	reader.IsDBNull(0)?String.Empty:reader.GetInt32(0);
	Console.Write(reader.GetInt32(0));
	Console.Write(reader.GetString(1));
	//GetBoolean(4);
	Console.WriteLine();//换行
}

 


SQL语句增删查

void main(string[] args)
{
	//连接数据的步骤
	//1.创建连接字符串
	//Data Source = localhost;连接本机实例(SQL SERVER中的服务器名称)
	//Initial Catalog = StudyOprationSystem ;初始化连接分类 默认连接的数据库
	//Integrated Security = True;Windows身份验证方式
	string constr = "Data Source = localhost;Initial Catalog = StudyOprationSystem ;Integrated Security = True;";
	//用户名密码方式
	 ...;Initial Catalog = StudyOprationSystem;UserID=sa;Password=123;
	
	//2.创建连接对象
	using (sqlconnection con = new sqlconnection(constr))
	{
		//测试,打开连接
		//3.打开连接(如果打开数据连接没有问题,表示连接成功!)
		con.open();
		//4.关闭连接,释放资源
		//con.close();
		con.Dispose();
	}
	console.WriteLine("关闭连接,释放资源");
	console.ReadKey();
}

#region 通过ADO.NET向表中插入一条数据
//1.连接字符串
string constr = "Data Source = localhost;Initial Catalog = StudyOprationSystem ;Integrated Security = True;";
//2.创建连接对象
using (sqlconnection con = new sqlconnection(constr))
	{
		//3.打开连接(最好执行时再打开)(最晚打开连接,最早关闭连接)
		con.open();
		//4.编写SQL语句
		string sql = "insert into StudyOprationSystem Values('',10,1,1,1)";
		//5.创建一个执行SQL语句的对象(命令对象)SqlCommand
		using(sqlcommand cmd(sql,con))
		{
			//6.开始执行SQL语句(此时打开连接)
			con.open();
			//cmd.ExecuteNonQuery();//insert\delete\update语句时
			//cmd.ExecuteScalar();//当执行返回单个结果时
			//cmd.ExecuteReader();//当查询出多行,多列结果的时候
			int r = cmd.ExecuteNonQuery();//这个方法有一个返回值是int类型,表示执行insert、delete、update语句后,所影响的行数
			//特别注意:ExecuteNonQuery()只有执行insert、delete、update语句时候会返回所影响的行数,其他任何SQL语句永远返回-1
			console.writeLine("成功插入了{0}行数据",r);
			//特别注意:当SQL语句执行的时候,如果是聚合函数,ExecuteScalar()返回的不可能是NULL,因为聚合函数不会返回NULL,但是
			//如果SQL语句使用的不是聚合函数,ExecuteScalar()有可能返回NULL,那么在使用count变量的时候就需要先判断是否为NULL了
			
			
		}
	}
	Console.ReadKey();

#endregion

//SQL增删改语句
insert into StudyOprationSystem Values('',10,1,1,1)"
delete from StudyOprationSystem Where ID = 1;
update StudyOprationSystem set name = '123',age='11' where id = 1;
//SQL查询语句
select count(*) from table  用ExecuteScalar
int count = (int)cmd.ExecuteScalar(); 

SqlHelper封装

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;

namespace 界面设计
{
    public static class SqlHelper
    {
        //定义连接字符串
        //readonly修饰的变量,只能在初始化的时候赋值,以及在构造函数中赋值
        //其他地方只能读取不能设置值
        private static readonly string conStr = ConfigurationManager.ConnectionStrings["mysqlserver"].ConnectionString;


        //1.执行增(inser)、删(delet)、改(update)的方法
        //ExecuteNonQuery()
        //params  SqlParameter[] pms 可变参数
        public static int ExecuteNonQuery(string sql,params  SqlParameter[] pms)
        {
            using (SqlConnection con = new SqlConnection(conStr))
            {
                using (SqlCommand cmd = new SqlCommand(sql, con))
                {
                    if (pms != null)
                    {
                        cmd.Parameters.AddRange(pms);
                    }
                    con.Open();
                    return cmd.ExecuteNonQuery();
                }
            }
        }


        //2.执行查询,返回单个值的方法
        //ExecuteScalar()

        public static object ExecuteScalar(string sql, params  SqlParameter[] pms)
        {
            using (SqlConnection con = new SqlConnection(conStr))
            {
                using (SqlCommand cmd = new SqlCommand(sql, con))
                {
                    if (pms != null)
                    {
                        cmd.Parameters.AddRange(pms);
                    }
                    con.Open();
                    return cmd.ExecuteScalar();
                }
            }
        }


        //3.执行查询,返回多行,多列的方法
        //ExecuteReader()

        public static SqlDataReader ExecuteReader(string sql, params  SqlParameter[] pms)
        {
                //连接不能关闭 using相当于 try finally
                SqlConnection con = new SqlConnection(conStr);
                using (SqlCommand cmd = new SqlCommand(sql, con))
                {
                    if (pms != null)
                    {
                        cmd.Parameters.AddRange(pms); 
                    }
                    try
                    {
                        con.Open();
                        //System.Data.CommandBehavior.CloseConnection这个枚举参数,表示将来使用完毕SqlDataReader后,在关闭
                        //reader的同时,在SqlDataReader内部会将关联的Connection对象也关闭掉
                        return cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
                    }
                    catch
                    {
                        //出异常时结束
                        con.Close();
                        con.Dispose();
                        throw;
                    }
                }
            
        }

    }
}

 

using System; using System.Collections; using System.ComponentModel; using System.Drawing; using System.Windows.Forms; namespace 教务管理系统 { public class ClassInfo : 医院管理系统.ParentForm { private System.Data.SqlClient.SqlCommand sqlSelectCommand1; private System.Data.SqlClient.SqlCommand sqlInsertCommand1; private System.Data.SqlClient.SqlCommand sqlUpdateCommand1; private System.Data.SqlClient.SqlCommand sqlDeleteCommand1; private System.Data.SqlClient.SqlConnection sqlConnection1; private 教务管理系统.DataSet1 dataSet11; private System.Windows.Forms.Label label4; private System.Windows.Forms.Label label5; private System.Windows.Forms.Label label6; private System.Windows.Forms.Label label7; private System.Windows.Forms.Label label8; private System.Windows.Forms.Label label9; private System.Windows.Forms.TextBox txt4; private System.Windows.Forms.TextBox txt5; private System.Windows.Forms.TextBox txt6; private System.Windows.Forms.TextBox txt9; private System.Windows.Forms.TextBox txt8; private System.Windows.Forms.TextBox txt7; private System.ComponentModel.IContainer components = null; public ClassInfo() { // 该调用是 Windows 窗体设计器所必需的。 InitializeComponent(); // TODO: 在 InitializeComponent 调用后添加任何初始化 } /// <summary> /// 清理所有正在使用的资源。 /// </summary> protected override void Dispose( bool disposing ) { if( disposing ) { if (components != null) { components.Dispose(); } } base.Dispose( disposing ); } #region 设计器生成的代码 /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.sqlSelectCommand1 = new System.Data.SqlClient.SqlCommand(); this.sqlConnection1 = new System.Data.SqlClient.SqlConnection(); this.sqlInsertCommand1 = new System.Data.SqlClient.SqlCommand(); this.sqlUpdateCommand1 = new System.Data.SqlClient.SqlCommand(); this.sqlDeleteCommand1 = new System.Data.SqlClient.SqlCommand(); this.dataSet11 = new 教务管理系统.DataSet1(); this.label4 = new System.Windows.Forms.Label(); this.txt4 = new System.Windows.Forms.TextBox(); this.txt5 = new System.Windows.Forms.TextBox(); this.label5 = new System.Windows.Forms.Label(); this.label6 = new System.Windows.Forms.Label(); this.txt6 = new System.Windows.Forms.TextBox(); this.txt9 = new System.Windows.Forms.TextBox(); this.label7 = new System.Windows.Forms.Label(); this.label8 = new System.Windows.Forms.Label(); this.txt8 = new System.Windows.Forms.TextBox(); this.txt7 = new System.Windows.Forms.TextBox(); this.label9 = new System.Windows.Forms.Label(); ((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).BeginInit(); this.groupBox2.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.dataSet11)).BeginInit(); // // groupBox1 // this.groupBox1.Name = "groupBox1"; // // txt2 // this.txt2.Name = "txt2"; // // label1 // this.label1.Name = "label1"; this.label1.Text = "年级"; this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // btnSearch // this.btnSearch.Name = "btnSearch"; this.btnSearch.Click += new System.EventHandler(this.btnSearch_Click); // // txt1 // this.txt1.Name = "txt1"; // // label2 // this.label2.Name = "label2"; this.label2.Text = "班级编号"; // // txt3 // this.txt3.Name = "txt3"; // // label3 // this.label3.Name = "label3"; this.label3.Text = "班级名称"; // // toolBar1 // this.toolBar1.Name = "toolBar1"; this.toolBar1.Size = new System.Drawing.Size(728, 41); // // dataGrid1 // this.dataGrid1.DataMember = "班级信息"; this.dataGrid1.DataSource = this.dataSet11; this.dataGrid1.Name = "dataGrid1"; // // groupBox2 // this.groupBox2.Controls.Add(this.txt4); this.groupBox2.Controls.Add(this.label4); this.groupBox2.Controls.Add(this.txt5); this.groupBox2.Controls.Add(this.label5); this.groupBox2.Controls.Add(this.label6); this.groupBox2.Controls.Add(this.txt6); this.groupBox2.Controls.Add(this.txt9); this.groupBox2.Controls.Add(this.label7); this.groupBox2.Controls.Add(this.label8); this.groupBox2.Controls.Add(this.txt8); this.groupBox2.Controls.Add(this.txt7); this.groupBox2.Controls.Add(this.label9); this.groupBox2.Name = "groupBox2"; // // da1 // this.da1.DeleteCommand = this.sqlDeleteCommand1; this.da1.InsertCommand = this.sqlInsertCommand1; this.da1.SelectCommand = this.sqlSelectCommand1; this.da1.TableMappings.AddRange(new System.Data.Common.DataTableMapping[] { new System.Data.Common.DataTableMapping("Table", "班级信息", new System.Data.Common.DataColumnMapping[] { new System.Data.Common.DataColumnMapping("班级编号", "班级编号"), new System.Data.Common.DataColumnMapping("年级", "年级"), new System.Data.Common.DataColumnMapping("班级名称", "班级名称"), new System.Data.Common.DataColumnMapping("班级简称", "班级简称"), new System.Data.Common.DataColumnMapping("人数", "人数"), new System.Data.Common.DataColumnMapping("班主任", "班主任")})}); this.da1.UpdateCommand = this.sqlUpdateCommand1; // // sqlSelectCommand1 // this.sqlSelectCommand1.CommandText = "SELECT 班级编号, 年级, 班级名称, 班级简称, 人数, 班主任 FROM 班级信息 WHERE (班级编号 LIKE @Param4) AND (年级 " + "LIKE @Param5) AND (班级名称 LIKE @Param6)"; this.sqlSelectCommand1.Connection = this.sqlConnection1; this.sqlSelectCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Param4", System.Data.SqlDbType.VarChar, 14, "班级编号")); this.sqlSelectCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Param5", System.Data.SqlDbType.VarChar, 4, "年级")); this.sqlSelectCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Param6", System.Data.SqlDbType.VarChar, 30, "班级名称")); // // sqlConnection1 // this.sqlConnection1.ConnectionString = "workstation id=localhost;packet size=4096;integrated security=SSPI;data source=\"." + "\";persist security info=False;initial catalog=eisbook"; // // sqlInsertCommand1 // this.sqlInsertCommand1.CommandText = "INSERT INTO 班级信息(班级编号, 年级, 班级名称, 班级简称, 人数, 班主任) VALUES (@班级编号, @年级, @班级名称, @班级简称," + " @人数, @班主任); SELECT 班级编号, 年级, 班级名称, 班级简称, 人数, 班主任 FROM 班级信息 WHERE (班级编号 = @班级编号)" + ""; this.sqlInsertCommand1.Connection = this.sqlConnection1; this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@班级编号", System.Data.SqlDbType.VarChar, 14, "班级编号")); this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@年级", System.Data.SqlDbType.VarChar, 4, "年级")); this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@班级名称", System.Data.SqlDbType.VarChar, 30, "班级名称")); this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@班级简称", System.Data.SqlDbType.VarChar, 16, "班级简称")); this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@人数", System.Data.SqlDbType.Decimal, 5, System.Data.ParameterDirection.Input, false, ((System.Byte)(3)), ((System.Byte)(0)), "人数", System.Data.DataRowVersion.Current, null)); this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@班主任", System.Data.SqlDbType.VarChar, 8, "班主任")); // // sqlUpdateCommand1 // this.sqlUpdateCommand1.CommandText = @"UPDATE 班级信息 SET 班级编号 = @班级编号, 年级 = @年级, 班级名称 = @班级名称, 班级简称 = @班级简称, 人数 = @人数, 班主任 = @班主任 WHERE (班级编号 = @Original_班级编号) AND (人数 = @Original_人数 OR @Original_人数 IS NULL AND 人数 IS NULL) AND (年级 = @Original_年级 OR @Original_年级 IS NULL AND 年级 IS NULL) AND (班主任 = @Original_班主任 OR @Original_班主任 IS NULL AND 班主任 IS NULL) AND (班级名称 = @Original_班级名称 OR @Original_班级名称 IS NULL AND 班级名称 IS NULL) AND (班级简称 = @Original_班级简称 OR @Original_班级简称 IS NULL AND 班级简称 IS NULL); SELECT 班级编号, 年级, 班级名称, 班级简称, 人数, 班主任 FROM 班级信息 WHERE (班级编号 = @班级编号)"; this.sqlUpdateCommand1.Connection = this.sqlConnection1; this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@班级编号", System.Data.SqlDbType.VarChar, 14, "班级编号")); this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@年级", System.Data.SqlDbType.VarChar, 4, "年级")); this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@班级名称", System.Data.SqlDbType.VarChar, 30, "班级名称")); this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@班级简称", System.Data.SqlDbType.VarChar, 16, "班级简称")); this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@人数", System.Data.SqlDbType.Decimal, 5, System.Data.ParameterDirection.Input, false, ((System.Byte)(3)), ((System.Byte)(0)), "人数", System.Data.DataRowVersion.Current, null)); this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@班主任", System.Data.SqlDbType.VarChar, 8, "班主任")); this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_班级编号", System.Data.SqlDbType.VarChar, 14, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "班级编号", System.Data.DataRowVersion.Original, null)); this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_人数", System.Data.SqlDbType.Decimal, 5, System.Data.ParameterDirection.Input, false, ((System.Byte)(3)), ((System.Byte)(0)), "人数", System.Data.DataRowVersion.Original, null)); this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_年级", System.Data.SqlDbType.VarChar, 4, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "年级", System.Data.DataRowVersion.Original, null)); this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_班主任", System.Data.SqlDbType.VarChar, 8, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "班主任", System.Data.DataRowVersion.Original, null)); this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_班级名称", System.Data.SqlDbType.VarChar, 30, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "班级名称", System.Data.DataRowVersion.Original, null)); this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_班级简称", System.Data.SqlDbType.VarChar, 16, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "班级简称", System.Data.DataRowVersion.Original, null)); // // sqlDeleteCommand1 // this.sqlDeleteCommand1.CommandText = @"DELETE FROM 班级信息 WHERE (班级编号 = @Original_班级编号) AND (人数 = @Original_人数 OR @Original_人数 IS NULL AND 人数 IS NULL) AND (年级 = @Original_年级 OR @Original_年级 IS NULL AND 年级 IS NULL) AND (班主任 = @Original_班主任 OR @Original_班主任 IS NULL AND 班主任 IS NULL) AND (班级名称 = @Original_班级名称 OR @Original_班级名称 IS NULL AND 班级名称 IS NULL) AND (班级简称 = @Original_班级简称 OR @Original_班级简称 IS NULL AND 班级简称 IS NULL)"; this.sqlDeleteCommand1.Connection = this.sqlConnection1; this.sqlDeleteCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_班级编号", System.Data.SqlDbType.VarChar, 14, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "班级编号", System.Data.DataRowVersion.Original, null)); this.sqlDeleteCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_人数", System.Data.SqlDbType.Decimal, 5, System.Data.ParameterDirection.Input, false, ((System.Byte)(3)), ((System.Byte)(0)), "人数", System.Data.DataRowVersion.Original, null)); this.sqlDeleteCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_年级", System.Data.SqlDbType.VarChar, 4, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "年级", System.Data.DataRowVersion.Original, null)); this.sqlDeleteCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_班主任", System.Data.SqlDbType.VarChar, 8, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "班主任", System.Data.DataRowVersion.Original, null)); this.sqlDeleteCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_班级名称", System.Data.SqlDbType.VarChar, 30, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "班级名称", System.Data.DataRowVersion.Original, null)); this.sqlDeleteCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_班级简称", System.Data.SqlDbType.VarChar, 16, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "班级简称", System.Data.DataRowVersion.Original, null)); // // dataSet11 // this.dataSet11.DataSetName = "DataSet1"; this.dataSet11.Locale = new System.Globalization.CultureInfo("zh-CN"); // // label4 // this.label4.Location = new System.Drawing.Point(64, 32); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(100, 16); this.label4.TabIndex = 0; this.label4.Text = "班级编号"; // // txt4 // this.txt4.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.dataSet11, "班级信息.班级编号")); this.txt4.Location = new System.Drawing.Point(64, 48); this.txt4.Name = "txt4"; this.txt4.ReadOnly = true; this.txt4.Size = new System.Drawing.Size(136, 21); this.txt4.TabIndex = 1; this.txt4.Text = ""; // // txt5 // this.txt5.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.dataSet11, "班级信息.年级")); this.txt5.Location = new System.Drawing.Point(232, 48); this.txt5.Name = "txt5"; this.txt5.ReadOnly = true; this.txt5.Size = new System.Drawing.Size(136, 21); this.txt5.TabIndex = 1; this.txt5.Text = ""; // // label5 // this.label5.Location = new System.Drawing.Point(232, 32); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(100, 16); this.label5.TabIndex = 0; this.label5.Text = "年级"; // // label6 // this.label6.Location = new System.Drawing.Point(408, 32); this.label6.Name = "label6"; this.label6.Size = new System.Drawing.Size(100, 16); this.label6.TabIndex = 0; this.label6.Text = "班级名称"; // // txt6 // this.txt6.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.dataSet11, "班级信息.班级名称")); this.txt6.Location = new System.Drawing.Point(408, 48); this.txt6.Name = "txt6"; this.txt6.ReadOnly = true; this.txt6.Size = new System.Drawing.Size(136, 21); this.txt6.TabIndex = 1; this.txt6.Text = ""; // // txt9 // this.txt9.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.dataSet11, "班级信息.班主任")); this.txt9.Location = new System.Drawing.Point(408, 96); this.txt9.Name = "txt9"; this.txt9.ReadOnly = true; this.txt9.Size = new System.Drawing.Size(136, 21); this.txt9.TabIndex = 1; this.txt9.Text = ""; // // label7 // this.label7.Location = new System.Drawing.Point(408, 80); this.label7.Name = "label7"; this.label7.Size = new System.Drawing.Size(100, 16); this.label7.TabIndex = 0; this.label7.Text = "班主任"; // // label8 // this.label8.Location = new System.Drawing.Point(232, 80); this.label8.Name = "label8"; this.label8.Size = new System.Drawing.Size(100, 16); this.label8.TabIndex = 0; this.label8.Text = "人数"; // // txt8 // this.txt8.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.dataSet11, "班级信息.班级简称")); this.txt8.Location = new System.Drawing.Point(232, 96); this.txt8.Name = "txt8"; this.txt8.ReadOnly = true; this.txt8.Size = new System.Drawing.Size(136, 21); this.txt8.TabIndex = 1; this.txt8.Text = ""; // // txt7 // this.txt7.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.dataSet11, "班级信息.班级简称")); this.txt7.Location = new System.Drawing.Point(64, 96); this.txt7.Name = "txt7"; this.txt7.ReadOnly = true; this.txt7.Size = new System.Drawing.Size(136, 21); this.txt7.TabIndex = 1; this.txt7.Text = ""; // // label9 // this.label9.Location = new System.Drawing.Point(64, 80); this.label9.Name = "label9"; this.label9.Size = new System.Drawing.Size(100, 16); this.label9.TabIndex = 0; this.label9.Text = "班级简称"; // // ClassInfo // this.AutoScaleBaseSize = new System.Drawing.Size(6, 14); this.ClientSize = new System.Drawing.Size(728, 502); this.Name = "ClassInfo"; this.Text = "【班级信息维护】"; this.Load += new System.EventHandler(this.ClassInfo_Load); ((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).EndInit(); this.groupBox2.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.dataSet11)).EndInit(); } #endregion //--------创建窗体时,读入数据------- private void ClassInfo_Load(object sender, System.EventArgs e) { da1.SelectCommand.Parameters[0].Value="%"; da1.SelectCommand.Parameters[1].Size=8;//4位年份输入 da1.SelectCommand.Parameters[1].Value="%"; da1.SelectCommand.Parameters[2].Value="%"; da1.Fill(dataSet11); //设置数据导航控件 this.cmOrders=(CurrencyManager) BindingContext[dataSet11,"班级信息"]; //将基类中的数据集与派生类中的数据集连接 base.dataSet11=this.dataSet11; } //-----------根据输入,检索信息---------- private void btnSearch_Click(object sender, System.EventArgs e) { da1.SelectCommand.Parameters[0].Value="%"; da1.SelectCommand.Parameters[1].Value="%"; da1.SelectCommand.Parameters[2].Value="%"; if(txt1.Text.Trim()!="") { da1.SelectCommand.Parameters[0].Value="%"+txt1.Text.Trim()+"%"; } if(txt2.Text.Trim()!="") { da1.SelectCommand.Parameters[1].Value="%"+txt2.Text.Trim()+"%"; } if(txt3.Text.Trim()!="") { da1.SelectCommand.Parameters[2].Value="%"+txt3.Text.Trim()+"%"; } dataSet11.Clear();//刷新数据集 da1.Fill(dataSet11); } //----------重写设置控件只读属性函数---------- protected override void SetModifyMode(bool blnEdit) { base.SetModifyMode (blnEdit); txt4.ReadOnly=!blnEdit; txt5.ReadOnly=!blnEdit; txt6.ReadOnly=!blnEdit; txt7.ReadOnly=!blnEdit; txt8.ReadOnly=!blnEdit; txt9.ReadOnly=!blnEdit; } //-------重写新增记录时设置默认值函数-------- protected override void SetDefaultValue() { base.SetDefaultValue (); } //-------重写检查非空字段函数-------- protected override bool CheckNotNull() { if(txt4.Text.Trim()=="")// 班级编号不能为空 { MessageBox.Show("班级编号不能为空","提示",MessageBoxButtons.OK,MessageBoxIcon.Stop); return(false); } return base.CheckNotNull (); } } }
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值