zoukankan      html  css  js  c++  java
  • DataGridView连接Sql数据库 功能 查询 添加 删除 修改

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.SqlClient;
    namespace _03大项目
    {
        public partial class Form1 : Form
        {
            //连接字符串
            string str = "Data Source=.;Initial Catalog=MyDeskInfo;Integrated Security=True";
            public Form1()
            {
                InitializeComponent();
            }
            //窗体加载
            private void Form1_Load(object sender, EventArgs e)
            {
                //加载餐桌
                LoadDeskInfoByDelFlag(0);
            }
            /// <summary>
            /// 该方法是加载所有没有被删除的餐桌
            /// </summary>
            /// <param name="p">删除标识 0---未删除,1---删除</param>
            private void LoadDeskInfoByDelFlag(int p)
            {
                List<DeskInfo> list = new List<DeskInfo>();
    
    
                //通过连接字符串连接数据库
                using (SqlConnection con = new SqlConnection(str))
                {
                    //拼接sql语句
                    string sql = "select DeskId,DeskName,DeskNamePinYin,DeskNum from DeskInfo where DeskDelFlag=" + p;
                    //准备执行sql语句的对象
                    using (SqlCommand cmd = new SqlCommand(sql, con))
                    {
                        con.Open();//打开数据库
                        //准备读数据
                        using (SqlDataReader reader = cmd.ExecuteReader())
                        {
                            //判断是否有数据(有没有行)
                            if (reader.HasRows)
                            {
                                //读取每一行
                                while (reader.Read())
                                {
                                    DeskInfo dk = new DeskInfo();//创建餐桌对象
                                    dk.DeskId = Convert.ToInt32(reader["DeskId"]);//id
                                    dk.DeskName = reader["DeskName"].ToString();//名字
                                    dk.DeskNamePinYin = reader["DeskNamePinYin"].ToString();//拼音
                                    dk.DeskNum = reader["DeskNum"].ToString();//编号
                                    list.Add(dk);//添加到集合中
                                }//end while
                            }//end if
                        }// end sqldatareader
                    }//end using
                }//end using
    
    
                dgv.AutoGenerateColumns = false;//禁止自动生成列
                dgv.DataSource = list;//绑定数据 到集合list,这样才有显示
                dgv.SelectedRows[0].Selected = false;//禁止被选中
    
            }
            //添加数据
            private void btnOk_Click(object sender, EventArgs e)
            {
                int n = -1;
                //获取文本框的值
                //连接数据库
                using (SqlConnection con = new SqlConnection(str))
                {
                    string sql = string.Format("insert into DeskInfo(DeskName, DeskNamePinYin, DeskDelFlag, DeskNum) values('{0}','{1}',{2},'{3}')", txtName.Text, txtPinYin.Text, 0, txtNum.Text);
                    using (SqlCommand cmd = new SqlCommand(sql, con))
                    {
                        con.Open();//打开数据库
                        n = cmd.ExecuteNonQuery();
                    }
                }
                string msg = n > 0 ? "操作成功" : "操作失败";
                MessageBox.Show(msg);
                LoadDeskInfoByDelFlag(0);//刷新
    
            }
    
            private void btnDelete_Click(object sender, EventArgs e)
            {
    
                //判断一下 是否选中行
                if (dgv.SelectedRows.Count > 0)
                {
                    int r = -1;
                    //选中了
                    //该行数据的id
                    string strId = dgv.SelectedRows[0].Cells[0].Value.ToString();
                    int id = Convert.ToInt32(strId);//转换一下
                    //update DeskInfo set DeskDelFlag=1 where DeskId=
    
                    using (SqlConnection con = new SqlConnection(str))
                    {
                        string sql = "update DeskInfo set DeskDelFlag=1 where DeskId=" + id;
                        using (SqlCommand cmd = new SqlCommand(sql, con))
                        {
                            con.Open();
                            r = cmd.ExecuteNonQuery();
                        }// end using 
                    }//end using
    
                    string msg = r > 0 ? "操作成功" : "操作失败";
                    MessageBox.Show(msg);
                    LoadDeskInfoByDelFlag(0);//刷新
                }
            }
    
            private void dgv_CellClick(object sender, DataGridViewCellEventArgs e)
            {
                if (dgv.SelectedRows.Count>0)
                {
                    //获取这条数据中的每个列中的值
                    //id  name  pinyin  num
                    labId.Text = dgv.SelectedRows[0].Cells[0].Value.ToString();
                    txtUName.Text = dgv.SelectedRows[0].Cells[1].Value.ToString();
                    txtUPinYin.Text = dgv.SelectedRows[0].Cells[2].Value.ToString();
                    txtUNum.Text = dgv.SelectedRows[0].Cells[3].Value.ToString();
                }
               
    
    
            }
    
            private void btnUpdate_Click(object sender, EventArgs e)
            {
                if (dgv.SelectedRows.Count>0)
                {
                    int r = -1;
                    //修改
                    using (SqlConnection con=new SqlConnection(str))
                    {
                        string sql =string.Format("update DeskInfo set DeskName='{0}',DeskNamePinYin='{1}',DeskNum='{2}' where DeskId={3}",txtUName.Text,txtUPinYin.Text,txtUNum.Text,Convert.ToInt32(labId.Text));
                        using (SqlCommand cmd=new SqlCommand(sql,con))
                        {
                            con.Open();
                           r= cmd.ExecuteNonQuery();
                        }// end using
                    }// end using
                    MessageBox.Show(r>0?"操作成功":"操作失败");
                    LoadDeskInfoByDelFlag(0);
                }
            }
            //显示有多少条数据
            private void button1_Click(object sender, EventArgs e)
            {
                //不要这个
                //MessageBox.Show(dgv.SelectedRows.Count);
    
                //练习
                object obj;
                using (SqlConnection con=new SqlConnection(str))
                {
                    string sql = "select count(*) from DeskInfo where DeskDelFlag=0";
                    using (SqlCommand cmd=new SqlCommand(sql,con))
                    {
                        con.Open();
                        obj= cmd.ExecuteScalar();
                    }
                }
                MessageBox.Show(obj.ToString());
    
            }
    
            private void btnGc_Click(object sender, EventArgs e)
            {
                //查询的是被删除的数据
                LoadDeskInfoByDelFlag(1);
            }
    
            private void btnCDDelete_Click(object sender, EventArgs e)
            {
                string id = dgv.SelectedRows[0].Cells[0].Value.ToString();
                //还是 更新  改标识   5 恢复 数据需要再交钱 100 超邪恶的方法
                //稍稍的修改一下标识  
                //  如果有一天 我邪恶了 请记住 我曾纯洁过             
    
                int r = -1;
                //修改
                using (SqlConnection con = new SqlConnection(str))
                {
                    string sql = "update DeskInfo set DeskDelFlag=5";
                    using (SqlCommand cmd = new SqlCommand(sql, con))
                    {
                        con.Open();
                        r = cmd.ExecuteNonQuery();
                    }// end using
                }// end using
                MessageBox.Show(r > 0 ? "操作成功" : "操作失败");
            }
        }
    }
  • 相关阅读:
    MySQL for OPS 02:SQL 基础
    Samba:基于公网 IP 的服务访问
    MySQL for OPS 01:简介 / 安装初始化 / 用户授权管理
    Samba:打造企业级授权文件共享服务器
    嵌入式web server——Goahead移植要点
    libConfuse的使用
    【工具篇】notepad++
    使用sprintf打印float并控制小数位数时引起的问题
    【工具篇】source Insight
    【工具篇】xshell
  • 原文地址:https://www.cnblogs.com/blacop/p/6055934.html
Copyright © 2011-2022 走看看