如何在前端界面操作数据表

一.DataGridView操作数据表

1.SqlDataAdapter类

属性:

Insertcommand:在 Sqlcommand 过程中使用 Update(DataTable),以在数据库中插入对应于 DataTable 中的新行的记录

Selectcommand:在 Sqlcommand 过程中使用的 Fill(DataTable),用来从数据库中为 DataTable  中的位置选择记录。

Updatecomm:在 Sqlcommand 过程中使用的 Update(DataTable),用于在数据库中更新对应于DataTable  中已修改行的记录。

2.SqlDataReader类

属性:

HasRows:获取一个值,该值指示 SqlDataReader 是否包含一行还是多行。如果 SqlDataReader 包含一行或多行,则为 true;否则为 false

方法:

Close():关闭SqlDataReader对象。

Read():让 SqlDataReader前进到下一条记录。如果存在更多行,则为 true;否则为 false

3.DataTable类

表示内存中数据的一个表

属性:

Columns:获取属于该表的列的集合。一个DataColumnCollection,包含该表的DataColumn 对象的集合。 如果 DataColumn 对象不存在,将返回空集合。

HasErrors:获取一个值,该值指示该表所属的 DataSet 的任何表的任何行中是否有错误。如果有错误,则为 true;否则为 false

Rows:获取属于该表的行的集合。包含 DataColumnCollection 对象的 DataRow;否则为 null 值(如果不存在任何 DataRow 对象)。

方法:

Clear:清除所有数据的DataTable。

Clone:克隆 DataTable的结构,包括所有DataTable架构和约束。新的 DataTable,与当前 DataTable 具有相同架构。

二.截图和代码

 

 

代码:

private void JCXMchaxun_Click(object sender, EventArgs e)
        {
            SqlConnection sqlConnection = new SqlConnection();                                              //声明并实例化SQL连接;
            sqlConnection.ConnectionString =
                ConfigurationManager.ConnectionStrings["Sql"].ConnectionString;                             //配置管理器从配置文件读取连接字符串,并将之赋予SQL连接的连接字符串属性;
            SqlCommand sqlCommand = new SqlCommand();                                                       //声明并实例化SQL命令;
            sqlCommand.Connection = sqlConnection;                                                          //将SQL命令的连接属性指向SQL连接;

            sqlCommand.CommandText = "SELECT * FROM Jianchaxiangmu WHERE Jc_no=@Jc_no;";                             //指定SQL命令的命令文本;该命令查询指定学生;
            sqlCommand.Parameters.AddWithValue("@Jc_no", "5436001");                                       //向SQL命令的参数集合添加参数的名称、值;
            sqlConnection.Open();                                                                      //将班级下拉框的值成员设为班级数据表的编号列;
            SqlDataReader sqlDataReader = sqlCommand.ExecuteReader();                                      //调用SQL命令的方法ExecuteReader来执行命令,并获取数据阅读器;
            if (sqlDataReader.Read())                                                                       //若数据阅读器成功读取到下一条记录(首次查询则表示第一条记录);
            {
                this.Jc_no.Text = sqlDataReader["Jc_no"].ToString();                                          //在数据阅读器的索引器中指定列名,从而访问当前记录的指定列的值,并赋予相应控件;
                this.Jcys.Text = sqlDataReader["Jcys"].ToString();

                this.Jc_date.Text = sqlDataReader["Jc_date"].ToString();
                this.Jcjg.Text = sqlDataReader["Jcjg"].ToString();
                this.Jc_con.Text = sqlDataReader["Jc_con"].ToString();
                this.Yijiao.Checked = (bool)sqlDataReader["Jc_fee"];
                this.Weijiao.Checked = !(bool)sqlDataReader["Jc_fee"];
                this.Jcfx.Text = sqlDataReader["Jcfx"].ToString();
            }
            sqlDataReader.Close();      
        }

        private void JCXMxiugai_Click(object sender, EventArgs e)
        {
            SqlConnection sqlConnection = new SqlConnection();
            sqlConnection.ConnectionString =
               ConfigurationManager.ConnectionStrings["Sql"].ConnectionString;
            SqlCommand sqlCommand = sqlConnection.CreateCommand();
            sqlCommand.CommandText =
                "UPDATE Jianchaxiangmu"
                + " SET Jcys=@Jcys,Jc_date=@Jc_date,Jcjg=@Jcjg,Jc_con=@Jc_con,Jc_fee=@Jc_fee,Jcfx=@Jcfx"
                + " WHERE Jc_no=@Jc_no;";
            sqlCommand.Parameters.AddWithValue("@Jcys", this.Jcys.Text.Trim());
            sqlCommand.Parameters.AddWithValue("@Jc_date", this.Jc_date.Text.Trim());
            sqlCommand.Parameters.AddWithValue("@Jc_fee", this.Yijiao.Checked);
            sqlCommand.Parameters.AddWithValue("@Jcjg", this.Jcjg.Text.Trim());
            sqlCommand.Parameters.AddWithValue("@Jc_con", this.Jc_con.Text.Trim());
            sqlCommand.Parameters.AddWithValue("@Jcfx", this.Jcfx.Text.Trim());
            sqlCommand.Parameters.AddWithValue("@Jc_no", this.Jc_no.Text.Trim());
            sqlConnection.Open();
            int rowAffected = sqlCommand.ExecuteNonQuery();
            sqlConnection.Close();
            if (rowAffected == 1)
            {
                MessageBox.Show("修改成功。");
            }
            else
            {
                MessageBox.Show("修改失败!");
            }
        }

        private void CJXMqueding_Click(object sender, EventArgs e)
        {
            SqlConnection sqlConnection = new SqlConnection();
            sqlConnection.ConnectionString =
               ConfigurationManager.ConnectionStrings["Sql"].ConnectionString;
            SqlCommand sqlCommand = sqlConnection.CreateCommand();
            sqlCommand.CommandText =
                "INSERT Jianchaxiangmu (Jcys,Jc_date,Jc_fee,Jcjg,Jc_con,Jcfx,Jc_no) VALUES(@Jcys,@Jc_date,@Jc_fee,@Jcjg,@Jc_con,@Jcfx,@Jc_no);";
            sqlCommand.Parameters.AddWithValue("@Jcys", this.Jcys.Text.Trim());
            sqlCommand.Parameters.AddWithValue("@Jc_date", this.Jc_date.Text.Trim());
            sqlCommand.Parameters.AddWithValue("@Jc_fee", this.Yijiao.Checked);
            sqlCommand.Parameters.AddWithValue("@Jcjg", this.Jcjg.Text.Trim());
            sqlCommand.Parameters.AddWithValue("@Jc_con", this.Jc_con.Text.Trim());
            sqlCommand.Parameters.AddWithValue("@Jcfx", this.Jcfx.Text.Trim());
            sqlCommand.Parameters.AddWithValue("@Jc_no", this.Jc_no.Text.Trim());

            sqlConnection.Open();
            int rowAffected = sqlCommand.ExecuteNonQuery();
            sqlConnection.Close();
            if (rowAffected == 1)
            {
                MessageBox.Show("添加成功。");
            }
            else
            {
                MessageBox.Show("添加失败!");
            }
        }

  

 private void btn_Load_Click(object sender, EventArgs e)
        {
            SqlConnection sqlConnection = new SqlConnection();                                              //声明并实例化SQL连接;
            sqlConnection.ConnectionString =
                "Server=(local);Database=EduBaseDemo;Integrated Security=sspi";                             //在字符串变量中,描述连接字符串所需的服务器地址、数据库名称、集成安全性(即是否使用Windows验证);
            SqlCommand sqlCommand = new SqlCommand();                                                       //声明并实例化SQL命令;
            SqlCommand sqlCommand2 = new SqlCommand();                                                      //声明并实例化SQL命令;
            sqlCommand.Connection = sqlConnection;                                                          //将SQL命令的连接属性指向SQL连接;
            sqlCommand2.Connection = sqlConnection;                                                         //将SQL命令的连接属性指向SQL连接;
            sqlCommand.CommandText = "SELECT * FROM tb_Class;";                                             //指定SQL命令的命令文本;该命令查询所有班级,以用作下拉框数据源;
            sqlCommand2.CommandText = "SELECT * FROM tb_Student;";                                          //指定SQL命令的命令文本;该命令查询所有学生;
            SqlDataAdapter sqlDataAdapter = new SqlDataAdapter();                                           //声明并实例化SQL数据适配器;
            sqlDataAdapter.SelectCommand = sqlCommand;                                                      //将SQL数据适配器的查询命令属性指向SQL命令;
            DataTable classTable = new DataTable();                                                         //声明并实例化数据表,用于保存所有班级,以用作下拉框数据源;
            SqlDataAdapter sqlDataAdapter2 = new SqlDataAdapter();                                          //声明并实例化SQL数据适配器;
            sqlDataAdapter2.SelectCommand = sqlCommand2;                                                    //将SQL数据适配器的查询命令属性指向SQL命令;
            DataTable studentTable = new DataTable();                                                       //声明并实例化数据表,用于保存所有学生,以用作数据网格视图的数据源;
            sqlConnection.Open();                                                                           //打开SQL连接;
            sqlDataAdapter.Fill(classTable);                                                                //SQL数据适配器读取数据,并填充班级数据表;
            sqlDataAdapter2.Fill(studentTable);                                                             //SQL数据适配器读取数据,并填充学生数据表;
            sqlConnection.Close();                                                                          //关闭SQL连接;
            this.dgv_Score.Columns.Clear();                                                                 //数据网格视图的列集合清空;
            this.dgv_Score.DataSource = studentTable;                                                       //将数据网格视图的数据源设为学生数据表;
            this.dgv_Score.Columns["No"].HeaderText = "学号";                                               //将数据网格视图的指定列的表头文本设为中文;
            this.dgv_Score.Columns["Name"].HeaderText = "姓名";
            this.dgv_Score.Columns["Gender"].HeaderText = "性别";
            this.dgv_Score.Columns["BirthDate"].HeaderText = "生日";
            this.dgv_Score.Columns["Speciality"].HeaderText = "特长";
            this.dgv_Score.Columns["Photo"].HeaderText = "照片";
            this.dgv_Score.Columns["ClassNo"].Visible = false;                                              //将数据网格视图的指定列设为不可见;
            this.dgv_Score.Columns[this.dgv_Score.Columns.Count - 1].AutoSizeMode =                         //数据网格视图的最后一列的自动调整列宽模式设为填充(至数据网格视图右侧边缘);
                DataGridViewAutoSizeColumnMode.Fill;
            DataGridViewComboBoxColumn classColumn = new DataGridViewComboBoxColumn();                      //声明并实例化数据网格视图下拉框列,用于设置学生的班级;
            classColumn.Name = "Class";                                                                     //设置下拉框列的名称;
            classColumn.HeaderText = "班级";                                                                //设置下拉框列的表头文本;
            classColumn.DataSource = classTable;                                                            //设置下拉框列的数据源为班级数据表;
            classColumn.DisplayMember = "Name";                                                             //设置下拉框列的显示成员为(班级数据表的)名称(列);
            classColumn.ValueMember = "No";                                                                 //设置下拉框列的值成员为(班级数据表的)编号(列);
            classColumn.DataPropertyName = "ClassNo";                                                       //设置下拉框列的数据属性名称为(学生数据表的)班级编号(列);
            classColumn.DisplayIndex = 4;                                                                   //设置下拉框列的显示顺序;
            classColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;                                 //设置下拉框列的自动调整列宽模式为填充;
            this.dgv_Score.Columns.Add(classColumn);                                                        //将下拉框列加入数据网格视图的列集合;
        }
        
        /// <summary>
        /// 私有方法:点击更新按钮;
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btn_Update_Click(object sender, EventArgs e)
        {
            SqlConnection sqlConnection = new SqlConnection();                                              //声明并实例化SQL连接;
            sqlConnection.ConnectionString =
                "Server=(local);Database=EduBase2015;Integrated Security=sspi";                             //在字符串变量中,描述连接字符串所需的服务器地址、数据库名称、集成安全性(即是否使用Windows验证);
            SqlCommand sqlCommand = new SqlCommand();                                                       //声明并实例化SQL命令;
            sqlCommand.Connection = sqlConnection;                                                          //将SQL命令的连接属性指向SQL连接;
            sqlCommand.CommandText =                                                                        //指定SQL命令的命令文本;
                "UPDATE tb_Student"
                + " SET Name=@Name,Gender=@Gender,BirthDate=@BirthDate,ClassNo=@ClassNo,Speciality=@Speciality"
                + " WHERE No=@No;";
            sqlCommand.Parameters.Add("@Name",SqlDbType.VarChar,0,"Name");                                  //向SQL命令的参数集合添加参数的名称、SQL Server数据类型、长度(仅用于定长类型)、所绑定的数据表中的列名;
            sqlCommand.Parameters.Add("@Gender", SqlDbType.Bit, 0, "Gender");
            sqlCommand.Parameters.Add("@BirthDate", SqlDbType.Date, 0, "BirthDate");
            sqlCommand.Parameters.Add("@ClassNo", SqlDbType.Int, 0, "ClassNo");
            sqlCommand.Parameters.Add("@Speciality", SqlDbType.VarChar, 0, "Speciality");
            sqlCommand.Parameters.Add("@No", SqlDbType.Char, 10, "No");
            SqlDataAdapter sqlDataAdapter = new SqlDataAdapter();                                           //声明并实例化SQL数据适配器,同时借助构造函数,将其SelectCommand属性设为先前创建的SQL命令;
            sqlDataAdapter.UpdateCommand = sqlCommand;                                                      //将SQL数据适配器的更新命令属性指向SQL命令;
            DataTable studentTable = (DataTable)this.dgv_Score.DataSource;                                  //声明数据表,并指向数据网格视图的数据源;数据源默认类型为object,还需强制转换类型;
            sqlConnection.Open();                                                                           //打开SQL连接;
            int rowAffected = sqlDataAdapter.Update(studentTable);                                          //SQL数据适配器根据学生数据表提交更新,并返回受影响行数;
            sqlConnection.Close();                                                                          //关闭SQL连接;
            MessageBox.Show("更新" + rowAffected.ToString() + "行。");                                      //在消息框显示受影响行数;
        }

  

转载于:https://www.cnblogs.com/hyuc/p/9845367.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值