• c#连接数据库的增删改查实例


    本次实现的是visual studio 的窗体应用程序+sql server的增删改查操作。

    1.首先看一下数据库的表结构,比较简单,只有一个表

     2.看一下项目的目录,只有标注的三个文件是需要修改的。

     

    3.然后看一下界面的实现,只有以下两个界面,Form1这个界面的上半部分是一个ToolStrip,下面的部分是DataGridView。Edit界面就是一些label,textBox以及button的组合,直接通过拖拽建议相应的界面即可。建立完页面后注意要修改相应插件的名称,就如第三张图所示,第三张图对应的是第一张图的DataGridView的名称。其他的插件的名称可以在源代码中找对应的,比较容易。

     

     

     4.具体代码实现

    1 using System;
      2 using System.Collections.Generic;
      3 using System.ComponentModel;
      4 using System.Data;
      5 using System.Data.SqlClient;
      6 using System.Drawing;
      7 using System.Linq;
      8 using System.Text;
      9 using System.Threading.Tasks;
     10 using System.Windows.Forms;
     11 
     12 namespace zengshangaicha
     13 {
     14     public partial class Form1 : Form
     15     {
     16         public Form1()
     17         {
     18             InitializeComponent();
     19         }
     20 
     21         DataSet ds = new DataSet();
     22         //获取数据方法
     23         private void GetDB()
     24         {
     25            
     26             ds = new DataSet();
     27             DBhelper dbhelper = new DBhelper();
     28             try
     29             {
     30                 string sql = @"Select Sno 学号,Sname 姓名,Sclass 班级,SChinese 语文,SMath 数学,SEnglish 英语,SChinese+SMath+SEnglish 总分,
     31                                   (SChinese+SMath+SEnglish)/3 平均分 from Score order by SChinese+SMath+SEnglish desc";
     32                 SqlDataAdapter adapter = new SqlDataAdapter(sql, dbhelper.Connection);
     33                 adapter.Fill(ds, "Score");
     34                 this.dgv.DataSource = this.ds.Tables["Score"];
     35             }
     36             catch (Exception)
     37             {
     38 
     39                 MessageBox.Show("数据库操作错误", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
     40             }
     41         }
     42 
     43         //退出按钮被点击
     44         private void tsbtnExit_Click(object sender, EventArgs e)
     45         {
     46             this.Close();
     47         }
     48         //窗体加载事件
     49         private void Form1_Load(object sender, EventArgs e)
     50         {
     51             GetDB();
     52         }
     53         //添加按钮被点击
     54         private void tsbtnIn_Click(object sender, EventArgs e)
     55         {
     56             Edit ed = new Edit();
     57             ed.ShowDialog();
     58             GetDB();
     59         }
     60         //修改按钮被点击
     61         private void tsbtnUpdate_Click(object sender, EventArgs e)
     62         {
     63             Edit ed = new Edit();
     64             ed.Sno = Convert.ToInt32(this.dgv.SelectedCells[0].Value);
     65             ed.ShowDialog();
     66             GetDB();
     67         }
     68         //删除按钮被点击
     69         private void tsbtnDelete_Click(object sender, EventArgs e)
     70         {
     71             Delete();
     72         }
     73         //删除方法
     74         private void Delete()
     75         {
     76 
     77             if (this.dgv.CurrentRow != null)
     78             {
     79                 DialogResult dr = MessageBox.Show("确定要删除:" + dgv.CurrentRow.Cells[1].Value + "相关成绩信息", "系统提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
     80                 if (dr == DialogResult.OK)
     81                 {
     82                     DBhelper helper = new DBhelper();
     83                     try
     84                     {
     85                         //sql语句
     86                         StringBuilder sb = new StringBuilder();
     87                         sb.AppendFormat("delete from Score where Sno={0}", Convert.ToInt32(dgv.CurrentRow.Cells[0].Value));
     88                         //执行工具
     89                         SqlCommand cmd = new SqlCommand(sb.ToString(), helper.Connection);
     90                         //打开数据库连接
     91                         helper.OpenConnection();
     92                         //执行
     93                         int result = cmd.ExecuteNonQuery();
     94                         if (result == 1)
     95                         {
     96                             MessageBox.Show("删除成功", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
     97                             //重新绑定dgv
     98                             this.GetDB();
     99                         }
    100                     }
    101                     catch (Exception)
    102                     {
    103 
    104                         MessageBox.Show("数据库操作失败", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
    105                     }
    106                     finally
    107                     {
    108                         helper.CloseConnection();
    109                     }
    110                 }
    111             }
    112 
    113         }
    114         //查询按钮被点击
    115         private void toolStripButton1_Click(object sender, EventArgs e)
    116         {
    117             this.Search();
    118         }     //查询方法
    119         private void Search()
    120         {
    121             ds = new DataSet();
    122             DBhelper dbHelper = new DBhelper();
    123             try
    124             {
    125                 string strSql = @"Select Sno 学号,Sname 姓名,Sclass 班级,SChinese 语文,SMath 数学,SEnglish 英语,SChinese+SMath+SEnglish 总分,
    126                                   (SChinese+SMath+SEnglish)/3 平均分 from Score
    127                                  where 1=1";
    128                 if (toolStripTextBox1.Text.Trim() != null && toolStripTextBox1.Text.Trim().Length > 0)
    129                 {
    130                     strSql += " and Sname like '%" + toolStripTextBox1.Text.Trim() + "%'";
    131                 }
    132                 if (toolStripTextBox2.Text.Trim() != null && toolStripTextBox2.Text.Trim().Length > 0)
    133                 {
    134                     strSql += " and Sclass like '%" + toolStripTextBox2.Text.Trim() + "%'";
    135                 }
    136                 strSql += "order by SChinese+SMath+SEnglish desc";
    137                 SqlDataAdapter adapter = new SqlDataAdapter(strSql, dbHelper.Connection);
    138                 adapter.Fill(ds, "score");
    139                 this.dgv.DataSource = this.ds.Tables["score"];
    140             }
    141             catch (Exception)
    142             {
    143                 MessageBox.Show("数据库操作错误!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
    144             }
    145         }
    146 
    147         
    148     }
    149 }
    
    Form1
    1 using System;
      2 using System.Collections.Generic;
      3 using System.ComponentModel;
      4 using System.Data;
      5 using System.Data.SqlClient;
      6 using System.Drawing;
      7 using System.Linq;
      8 using System.Text;
      9 using System.Threading.Tasks;
     10 using System.Windows.Forms;
     11 
     12 namespace zengshangaicha
     13 {
     14     public partial class Edit : Form
     15     {
     16         public int Sno = -1;
     17         DataSet ds = new DataSet();
     18         public Edit()
     19         {
     20             InitializeComponent();
     21         }
     22         //窗体加载
     23         private void Edit_Load(object sender, EventArgs e)
     24         {
     25             if (Sno == -1)//没有被选定的行数
     26             {
     27 
     28             }
     29             else//修改
     30             {
     31                 GetInfo();
     32                 this.btnSave.Text = "修改";
     33             }
     34         }
     35         //保存按钮
     36         private void btnSave_Click(object sender, EventArgs e)
     37         {
     38             if (CheckItem())
     39             {
     40                 if (this.Sno == -1)//新增
     41                 {
     42                     if (CheckSnoExit())
     43                     {
     44                         InsertDB();
     45                     }
     46                 }
     47                 else//更新
     48                 {
     49                     UpdateScore();
     50                 }
     51             }
     52         }
     53         //非空验证
     54         private bool CheckItem()
     55         {
     56             bool checkValue = true;
     57             if (this.textBox1.Text.Trim().Length == 0)
     58             {
     59                 MessageBox.Show("学号不能为空", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
     60                 checkValue = false;
     61                 this.textBox1.Text = " ";
     62             }
     63             return checkValue;
     64         }
     65         //增加方法
     66         //查重
     67         private bool CheckSnoExit()
     68         {
     69             bool exit = true;
     70             DBhelper dbhelper = new DBhelper();
     71             try
     72             {
     73                 StringBuilder sb = new StringBuilder();
     74                 sb.AppendFormat("select * from Score where Sno='{0}'", textBox1.Text.Trim());
     75                 SqlCommand cmd = new SqlCommand(sb.ToString(), dbhelper.Connection);
     76                 dbhelper.OpenConnection();
     77                 SqlDataReader reader = cmd.ExecuteReader();
     78                 if (reader.Read())
     79                 {
     80                     MessageBox.Show("该学号已存在", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
     81                     exit = false;
     82                 }
     83                 reader.Close();
     84             }
     85             catch (Exception)
     86             {
     87                 MessageBox.Show("数据库操作错误", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
     88             }
     89             finally
     90             {
     91                 dbhelper.CloseConnection();
     92             }
     93             return exit;
     94         }
     95         //执行增加
     96         private void InsertDB()
     97         {
     98             DBhelper helper = new DBhelper();
     99             try
    100             {
    101                 //SQL语句
    102                 StringBuilder sb = new StringBuilder();
    103                 sb.AppendLine("insert into Score");
    104                 sb.AppendFormat("values('{0}','{1}','{2}','{3}','{4}','{5}')", textBox1.Text.Trim(), textBox2.Text.Trim(), comboBox1.Text.Trim(), textBox4.Text.Trim(), textBox5.Text.Trim(), textBox6.Text.Trim());
    105                 //执行工具
    106                 SqlCommand cmd = new SqlCommand(sb.ToString(), helper.Connection);
    107                 //打开连接
    108                 helper.OpenConnection();
    109                 //执行
    110                 int result = cmd.ExecuteNonQuery();
    111                 if (result > 0)
    112                 {
    113                     MessageBox.Show("添加成功", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
    114                     this.Close();
    115                 }
    116             }
    117             catch (Exception)
    118             {
    119                 MessageBox.Show("添加数据库操作错误", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
    120             }
    121             finally
    122             {
    123                 helper.CloseConnection();
    124             }
    125         }
    126 
    127         //通过ID查找类别
    128         private void GetInfo()
    129         {
    130             DBhelper dbhelper = new DBhelper();
    131             try
    132             {
    133                 //SQL语句
    134                 StringBuilder sb = new StringBuilder();
    135                 sb.AppendLine("select Sno,Sname,Sclass,SChinese,SMath,SEnglish");
    136                 sb.AppendLine("from Score");
    137                 sb.AppendFormat("where Sno={0}", Sno);
    138                 //执行工具
    139                 SqlCommand cmd = new SqlCommand(sb.ToString(), dbhelper.Connection);
    140                 //打开连接
    141                 dbhelper.OpenConnection();
    142                 //执行
    143                 SqlDataReader reader = cmd.ExecuteReader();
    144                 if (reader.Read())
    145                 {
    146                     textBox1.Text = reader["Sno"].ToString();
    147                     textBox2.Text = reader["Sname"].ToString();
    148                     comboBox1.Text = reader["Sclass"].ToString();
    149                     textBox4.Text = reader["SChinese"].ToString();
    150                     textBox5.Text = reader["SMath"].ToString();
    151                     textBox6.Text = reader["SEnglish"].ToString();
    152                 }
    153                 reader.Close();
    154             }
    155             catch (Exception)
    156             {
    157                 MessageBox.Show("操作错误", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
    158             }
    159             finally
    160             {
    161                 dbhelper.CloseConnection();
    162             }
    163 
    164         }
    165         //修改
    166         private void UpdateScore()
    167         {
    168             DBhelper helper = new DBhelper();
    169             try
    170             {
    171                 StringBuilder sql = new StringBuilder();
    172                 //修改数据库语句
    173                 sql.AppendLine("update Score");
    174                 sql.AppendFormat("set Sname='{0}',Sclass='{1}',SChinese='{2}',SMath='{3}',SEnglish='{4}'", textBox2.Text.Trim(), comboBox1.Text.Trim(), textBox4.Text.Trim(), textBox5.Text.Trim(), textBox6.Text.Trim());
    175                 sql.AppendFormat("where Sno={0}", Sno);
    176                 //执行工具
    177                 SqlCommand cmd = new SqlCommand(sql.ToString(), helper.Connection);
    178                 //打开数据库连接
    179                 helper.OpenConnection();
    180                 //执行
    181                 int result = cmd.ExecuteNonQuery();
    182                 //判断
    183                 if (result == 1)
    184                 {
    185 
    186                     MessageBox.Show("修改成功", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
    187                     this.Close();
    188                 }
    189                 else
    190                 {
    191 
    192                     MessageBox.Show("修改失败", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
    193                 }
    194             }
    195             catch (Exception)
    196             {
    197 
    198                 MessageBox.Show("修改数据库操作错误", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
    199             }
    200             finally
    201             {
    202                 helper.CloseConnection();
    203             }
    204 
    205         }
    206         //取消按钮
    207         private void button2_Click(object sender, EventArgs e)
    208         {
    209             this.Close();
    210         }
    211 
    212        
    213     }
    214 }
    
    Edit
    View Code
    1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Threading.Tasks;
     6 using System.Data;
     7 using System.Data.SqlClient;
     8 using System.Windows.Forms;
     9 
    10 namespace zengshangaicha
    11 {
    12     class DBhelper
    13     {
    14        
    15         private string connString = "server=.;database=student1;user=sa;pwd=000000;";//连接数据库自己的用户名密码
    16         private SqlConnection connection;
    17 
    18         public SqlConnection Connection
    19         {
    20             get
    21             {
    22                 if (connection == null)
    23                 {
    24                    
    25                     connection = new SqlConnection(connString);
    26                 }
    27                 return connection;
    28             }
    29 
    30         }
    31         //打开数据库连接
    32         public void OpenConnection()
    33         {
    34             if (Connection.State == ConnectionState.Closed)
    35             {
    36                
    37                 Connection.Open();
    38             }
    39             else if (Connection.State == ConnectionState.Broken)
    40             {
    41                 Connection.Close();
    42                 Connection.Open();
    43             }
    44         }
    45         //关闭数据库
    46         public void CloseConnection()
    47         {
    48             if (Connection.State == ConnectionState.Open || Connection.State == ConnectionState.Broken)
    49             {
    50                 Connection.Close();
    51             }
    52         }
    53     }
    54 }
    
    DBhelper

    4.在复制代码的时候,需要注意的是,在下面这张图里面的点击事件是不会自动添加的,需要自己手动写一下,具体格式如第二张图所示。

     

    至此,增删改查完毕。

    以下是原文链接:https://www.cnblogs.com/qq1793033075/p/12188268.html

  • 相关阅读:
    【剑指offer】数组中重复的数字
    【剑指offer】数组中只出现一次的数字
    【linux】进程存储管理
    【linux】gdb调试
    【C/C++】快速排序的两种实现思路
    【C/C++】知识点
    【计算机网络】知识点记录
    【hadoop】mapreduce原理总结
    基于社交网络的情绪化分析IV
    Android studio 升级,不用下载完整版,完美更新到2.0
  • 原文地址:https://www.cnblogs.com/1305536110-dym/p/14882831.html
Copyright © 2020-2023  润新知