zoukankan      html  css  js  c++  java
  • ado.net的简单数据库操作(三)——简单增删改查的实际应用

       果然,在犯困的时候就该写写博客,写博客就不困了,哈哈!

      上篇我记录了自己的SqlHelper的开发过程,今天记录一下如何使用这个sqlhelper书写一个具有简单增删改查的小实例啦。

      实例描述:在数据库新建一张TbClass表,将表的内容读取到一个DataGridView上,并且可以在winform面板上对表里的内容进行增、删、改的操作。首先给出winform的设计:

     下面开始写步骤咯,哈哈:

    第一步:搭建该winform框架:

     按图所示分别对其属性进行一些修改,搭建完成后为:

    第二步:编写代码:

    1.数据表介绍

    首先看看我的数据库长啥样的:

    tClassId为主键自增,不能为空,tClassName为nvarchar,非空 ,tClassDesc为nVarchar,可以为空。

    然后确定查询语句,为:select * from TbClass;

    2.添加SqlHelper,编写数据加载方法

    首先,创建LoadData()方法,然后在Form1_Load()方法中调用LoadData方法;

    LoadData方法书写如下:

     1  public void LoadData()
     2  {
     3             //声明一个list集合
     4             List<TbClass> list = new List<TbClass>();
     5             //书写sql语句
     6             string sql = "select * from TbClass";
     7             //调SqlHelper实现查询
     8             SqlDataReader reader = SqlHelper.ExecuteReader(sql);
     9             if (reader.HasRows)
    10             {
    11                 while (reader.Read())
    12                 {
    13                     //创建数据库对象tbClass
    14                     TbClass tbClass = new TbClass();
    15                     tbClass.tClassId = reader.GetInt32(0);
    16                     tbClass.tClassName = reader.GetString(1);
    17                     tbClass.tClassDesc = reader.IsDBNull(2) ? null : reader.GetString(2); //数据表中该字段是允许为空的,故这里做出判断,为空则使该值为null,
    18                     list.Add(tbClass);
    19                 }
    20             }
    21             //将list数据绑定到dataGridView上
    22             this.dataGridView1.DataSource = list;
    23  }

       在使用SqlHelper之前,需要在App.config中添加配置代码和在项目中添加引用,这是需要注意的,因为在以前的博客中有详细讲解如何添加,这里不再讲了哈。

     下面看一下读取数据后的结果:

    3.完成添加班级的功能

    添加功能主要是向数据库中插入一条记录,首先写出sql语句:

    sql = “insert into TbClass (tClassName,tClassDesc) Values('高5班','文科班') ”;

    因为这里需要使用传递参数的sql语句,所以上面的语句写为:

    sql = "insert into TbClass (tClassName,tClassDesc) Values(@classname,@classdesc)"

     然后我们在winform上双击 “添加"按钮,进入相关方法体边界方法:

    看代码:

     1          private void button1_Click(object sender, EventArgs e)
     2          {
     3             //1.执行插入操作
     4              bool  row = InsertClass();
     5             if (row)
     6             {
     7                 //2.插入成功,重新加载数据
     8                 MessageBox.Show("添加了" + 1 +"班级");
     9                 LoadData();
    10             }
    11             else
    12             {
    13                     //插入失败
    14             }
    15           
    16          }
    17 
    18         /// <summary>
    19         /// 执行向数据库中插入添加的班级的操作
    20         /// </summary>
    21         /// <returns> 返回布尔类型结果,成功返回true,否则false</returns>
    22         private Boolean InsertClass()
    23         {
    24             //1.获取输入值
    25             string className = txtClassName.Text.Trim();
    26             string classDesc = txtClassDesc.Text.Trim();
    27             //2.sql语句
    28             string sql = "insert into TbClass (tClassName,tClassDesc) values (@classname,@classdesc)";
    29             //3.定义参数数组
    30             SqlParameter[] parameters = new SqlParameter[] {
    31                 new SqlParameter("@classname",System.Data.SqlDbType.NVarChar,50){Value = className },
    32                 new SqlParameter("@classdesc",System.Data.SqlDbType.NVarChar,250){Value = classDesc }
    33             };
    34             //4.调用SqlHelper,返回结果
    35             return   SqlHelper.ExecuteNonQurey(sql,parameters) > 0;
    36 
    37         }                    

     然后看一下插入的结果:

     4.修改班级和删除班级

    (1)实现选中某行,该行的信息出现在下面的编辑框中

    要实现对某个行的操作,首先得选中某行,所以,首先要把dataGridView的属性里的SelectionMode改为FullRowSelect,如图:

     然后,要在鼠标选中某一行时,获取该行的tClassId.接下来看看获取该id的做法:

    在dataGridView的属性页中找到一个名为RowEnter的事件,双击进入方法,编写函数:

     

     然后我们看代码:

     1  private void dataGridView1_RowEnter(object sender, DataGridViewCellEventArgs e)
     2  {
     3             //获取当前选中的行对象
     4             DataGridViewRow currentRow = this.dataGridView1.Rows[e.RowIndex];
     5 
     6             //获取选中行对象中的值,并将值存入TbClass中
     7             TbClass model = currentRow.DataBoundItem as TbClass;
     8 
     9             if (model != null)
    10             {
    11                 txtClassId.Text = model.tClassId.ToString();
    12                 txtEditClassName.Text = model.tClassName.ToString();
    13                 txtEditClassDesc.Text = model.tClassDesc.ToString();
    14             }
    15             
    16}

     (3)实现修改操作

    在获取了某行的行内信息后那么对该行进行修改和删除就变得简单了,又是几个数据库的操作,下面我们双击保存修改,进入修改按钮方法体中书写代码:

     代码如下:

     1   /// <summary>
     2         /// 将修改后的内容存储到数据库,并重新加载数据
     3         /// </summary>
     4         /// <param name="sender"></param>
     5         /// <param name="e"></param>
     6         private void button2_Click(object sender, EventArgs e)
     7         {
     8             //获取修改后的数据
     9             TbClass model = new TbClass();
    10             int classId = Convert.ToInt32(txtClassId.Text);
    11             string className = txtEditClassName.Text.Trim();
    12             string classDesc = txtEditClassDesc.Text.Trim();
    13             //确定和书写sql语句
    14             string sql = "update TbClass set tClassName = @classname , tClassDesc = @classdesc where tClassId = @clsssid";
    15             //定义参数数组并赋值
    16             SqlParameter[] parameters = new SqlParameter[] {
    17                 new SqlParameter("@clsssid",System.Data.SqlDbType.Int){ Value = classId},
    18                 new SqlParameter("@classname",System.Data.SqlDbType.NVarChar,50){Value = className },
    19                 new SqlParameter("@classdesc ",System.Data.SqlDbType.NVarChar,250){Value = classDesc }
    20             };
    21             int row = SqlHelper.ExecuteNonQurey(sql,parameters);
    22             if (row > 0)
    23             {
    24                 MessageBox.Show("更新了" +row + "");
    25                 LoadData();
    26             }
    27             else
    28             {
    29                     
    30             }
    31 
    32         }

    演示结果: 

    (4)删除操作

    同样是操作数据库的语句,还是看代码吧,哈哈:

     1   private void button3_Click(object sender, EventArgs e)
     2         {
     3             //获取当前行的 tClassId
     4             int classId = Convert.ToInt32(txtClassId.Text);
     5             //sql语句
     6             string sql = "delete  from TbClass where tClassId = @classid";
     7             //参数数组
     8             SqlParameter[] parameters = new SqlParameter[] {
     9                 new SqlParameter("@classid",System.Data.SqlDbType.Int){ Value = classId}
    10             };
    11             //执行sql语句
    12             int row = SqlHelper.ExecuteNonQurey(sql,parameters);
    13             if (row > 0)
    14             {
    15                 MessageBox.Show("删除了" + row + "记录");
    16                 LoadData();
    17             }
    18 
    19         }

    结果图:

     好了,关于ado.net的一些基本操作就记录到这里哦,后面要去学mvc了,希望和其他菜鸟们一起进步。

    我的QQ: 3074596466

    声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。对于本博客如有任何问题,可发邮件与我沟通,我的QQ邮箱是:3074596466@qq.com
  • 相关阅读:
    A simple class to play sound on netcf
    NETCF运行平台检测
    [翻译]XNA 3.0 Game Programming Recipes之thirtynine
    [翻译]XNA 3.0 Game Programming Recipes之thirtyfour
    [翻译]XNA 3.0 Game Programming Recipes之thirtyseven
    [翻译]XNA 3.0 Game Programming Recipes之thirtysix
    [翻译]XNA 3.0 Game Programming Recipes之thirtyfive
    [翻译]XNA 3.0 Game Programming Recipes之forty
    [翻译]XNA 3.0 Game Programming Recipes之thirtyeight
    [翻译]XNA 3.0 Game Programming Recipes之fortyone
  • 原文地址:https://www.cnblogs.com/CherishTheYouth/p/CherishTheYouth_807.html
Copyright © 2011-2022 走看看