• DetaSet更新数据


    用到的控件:DataGridView(展示数据),

                       Button控件,更名【更新】

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Data.SqlClient;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace _08DataSet更新
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            DataTable dt;
            private void Form1_Load(object sender, EventArgs e)
            {
                // 执行一个sql语句,并把结果集放入本地的DataTable中.这里数据已经放到本地,断开数据库连接,还是可以访问到数据的.
                dt = CommonCode.Sqlhelper.ExecuteDataTable("select * from Table_Para");
                dataGridView1.DataSource = dt;//数据绑定到dataGridView上
    
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                //可以为我们的dataadpter提供一些简单的增删改的sql
                //1)只能是一张表,不能有外键.  2)该表必须有主键
    
                SqlDataAdapter da = new SqlDataAdapter("select * from Table_Para", System.Configuration.ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString);
                SqlCommandBuilder scb = new SqlCommandBuilder(da);// SqlCommandBuilder自动生成表单,用于将system.Data.DataSet所做的数据的更改
                da.Update(dt);
    
            }
        }
    }
    运行效果图如下:直接在行中修改值

    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Data.SqlClient;
    using System.Linq;
    using System.Text;
    
    namespace CommonCode
    {
    
        public static class Sqlhelper
        {
            private static readonly string ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString;
            //执行数据库无非就是执行cmd的以下方法
            //1. ExecuteNonQuery 执行一个insert update delete
            public static int ExecuteNonQuery(string sql, params SqlParameter[] parameters)
            {
                using (SqlConnection conn = new SqlConnection(ConnectionString))
                {
                    using (SqlCommand cmd = new SqlCommand(sql, conn))
                    {
                        cmd.Parameters.AddRange(parameters);
                        conn.Open();
                        return cmd.ExecuteNonQuery();
                    }
                }
    
    
    
            }
    
    
            //2.ExecuteScaler 返回结果集的第一行第一列
            public static object ExecuteScaler(string sql, params SqlParameter[] parameters)
            {
                using (SqlConnection conn = new SqlConnection(ConnectionString))
                {
                    using (SqlCommand cmd = new SqlCommand(sql, conn))
                    {
                        cmd.Parameters.AddRange(parameters);
                        conn.Open();
                        return cmd.ExecuteScalar();
                    }
                }
            }
    
            //3.ExecuteReader 返回一个Reader对象,用于读于多行多列数据
            //在数据库上产生一个结果集,每次Read,从数据库服务器上读取一条数据回来,所以使用Reader读取数据,不能与数据库断开连接.
            public static SqlDataReader ExecuteReader(string sql, params SqlParameter[] parameters)
            {
                SqlConnection conn = new SqlConnection(ConnectionString);
                
                    using (SqlCommand cmd = new SqlCommand(sql, conn))
                    {
                        cmd.Parameters.AddRange(parameters);
                        conn.Open();
                        try
                        {
                            //在sqlhelper中,由于dr在返回给用户使用,所以注意dr不要使用using(){]
                            SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                            
                                return dr;
                            
                        }
                        catch (Exception ex)
                        {
                            conn.Close();
                            throw ex;
                           
                        }
              
                    }
                }
    
            
    
            //4.执行一个sql语句,并把结果集放入本地的DataTable中.这里数据已
            //经放到本地,断开数据库连接,还是可以访问到数据的.
            public static DataTable ExecuteDataTable(string sql, params SqlParameter[] parameters)
            {
                using (SqlConnection conn = new SqlConnection(ConnectionString))
                {
                    using (SqlDataAdapter da = new SqlDataAdapter(sql, conn))
                    {
                        da.SelectCommand.Parameters.AddRange(parameters);
                        DataTable dt = new DataTable();
                        //Fill方法其实执行的是da.SelectCommand中的sql语句,这里可以写conn.open也可以不写,如果不写,da会自动连接数据库
                        da.Fill(dt);
                        return dt;
                    }
                }
            }
        }
    }
  • 相关阅读:
    NaN数值类型
    模板字符串
    一文带你速懂虚拟化KVM和XEN
    CentOS 8配置本地yum源及DNF简介
    fxksmdb.exe 是什么进程?
    入行IT,一定要会Linux吗?
    干货|Linux平台搭建网关服务器
    忘带U盘了??别急!一行python代码即可搞定文件传输
    手把手教你如何搭建一个私有云盘
    误删重要文件怎么办?学会Linux 救援模式再也不担心
  • 原文地址:https://www.cnblogs.com/hehehehehe/p/6042194.html
Copyright © 2020-2023  润新知