首页 > 数据库 >winfrom中对datagridview控件更新数据并添加到数据库中

winfrom中对datagridview控件更新数据并添加到数据库中

时间:2023-05-27 10:13:26浏览次数:42  
标签:控件 string winfrom 数据库 datagridview user conn

第一种方法:双击鼠标直接修改数据同步到数据库

1、首先在app.config配置数据库

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <connectionStrings>
        <add name="local"
             connectionString="Data Source=DESKTOP-H4SJVU2;Initial Catalog=Hello_world;Integrated Security=True"
             providerName="System.Data.SqlClient"/>
    </connectionStrings>
    <appSettings>
        <add key="connectionstring"
             value="Data Source=DESKTOP-H4SJVU2;Initial Catalog=Hello_world;Integrated Security=True"/>
    </appSettings>
</configuration>

2、在这里面连接数据库,相当于定义一个全局的conn

 3、接着定义连接数据库的常用的全局变量

4、 点击窗体进入load中显示数据,这样主要运行项目数据就可以直接显示在daagridview控件中代码如下:

private void Form1_Load(object sender, EventArgs e)
        {
            conn.Open();
            sqlStr = "select * from user_info";
            SqlDataAdapter adapter = new SqlDataAdapter(str, conn);
            DataSet ds = new DataSet();
            adapter.Fill(ds, "user_info");
            dataGridView1.DataSource = ds.Tables["user_info"];
            conn.Close();
        }

5、在datagridview属性里面找到EideMode属性,设置为EditOnEnter

 6、然后找到事件CellValueChanged

 7、双击点进去代码如下:

 

private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                conn.Open();
                //定义一个字符串str1=表格控件.列【事件获取列的索引】.表头的文本+‘=’+单引号+表格控件.当前单元格.值.转换string类型+单引号
                //【e.columnIndex】为什么要用这个?因为我们要编辑那个行的时候,需要用到(比如数字监控他在bname上)要获取bname的列名字
                string str1 = dataGridView1.Columns[e.ColumnIndex].HeaderText + "=" + "'" + dataGridView1.CurrentCell.Value.ToString() + "'";


                //定义一个字符串str2=表格控件.行【事件获取行的索引】.单元格【0】.值.转换string类型
                //where bid=100005 这个1005怎么获取?【e.RowIndex】获取行的索引.因为100005在单元格中第1行,(索引器从0开始的0就是1),在获取这个上面的值.转换成string类型
                string str2 = dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString();

                //关联str1和str2 执行update 的时候就相当于把条件获取string变量上
                string sqlupdate = "update user_info set " + str1 + " where user_id=" + str2;

                //为什么用sqlcommand,不用dataadapter呢?因为SqlCommand下面有个方法ExecuteNonQuery,它ExecuteNonQuery()不返回任何值,一把应用于 insert update delete语句中
                cmd = new SqlCommand(sqlupdate, conn);

                cmd.ExecuteNonQuery();  //用到只能更新的方法来交互数据库更新



            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);
            }
            finally
            {

                conn.Close();
            }
        }

 第二种方法:选择datagridview中的数据到txtbook中,在txtbox中修改数据,同步到数据库

我的表为user_info,有三个字段:user_id,user_name,user_pwd

1、在窗体中添加箭头所指的几个控件,id是主键,是不能修改的,所以在txtbox属性中找到readonly设置为true

 2、连接数据库操作同第一种方法

3、在load里面查询数据,运行项目时数据直接显示同方法一一样

4、找到datagridview中的cellClick事件双击,将datagridview和txtbox进行捆绑

 5、单击批量保存按钮继续代码编辑,跟新操作并同步到数据库中

这里的定义的i是表示更新一条数据后会返回一个执行结果用来提示更新状态

 

标签:控件,string,winfrom,数据库,datagridview,user,conn
From: https://www.cnblogs.com/45fdsf4s4sdfsddv/p/17436321.html

相关文章

  • DataGridView完美解决复制粘贴功能
    //在DataGridView的PreviewKeyDown事件中privatevoiddataGridView1_PreviewKeyDown(objectsender,PreviewKeyDownEventArgse){if(e.Control&&e.KeyCode==Keys.V)//判断是否按下ctrl+v{Paste(dataGridView1,"",0,false);//粘贴代码}}粘贴,行数和列数不......
  • FLEX4实践—自定义控件皮肤
     设计需求: 1)对于界面上的TextInput控件,需要设置‘必填’与‘非必填’两种状态 2)对于‘必填’状态希望给与控件特殊的显示样式 3)希望能简化代码,不需要每次使用TextInput控件都要对其置样式  方案1:将样式控制写入css文件,通过Style属性控制TextInput的显示 方案2:利用Flex......
  • FLEX实践—控件内容与String显示区别
     在解释这个区别之前先来看一段示例:<?xmlversion="1.0"encoding="utf-8"?><mx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"layout="absolute"><mx:Script><!--[CDATA[i......
  • Flutter控件之CircularProgressIndicator
    CircularProgressIndicator的作用Flutter中的CircularProgressIndicator是一个圆形进度指示器,用于表示正在进行的任务的进度。它通常用于长时间运行的任务,例如文件下载、网络请求等。CircularProgressIndicator可以在圆周上旋转,以表示正在进行的任务的进度,同时可以根据需要设置颜......
  • 失传的museui控件组件属性
    提示框顶部导航条自动补全输入徽章底部导航组件按钮时间输入框数据表格对话框分割线表单栅格布局图标布局列表加载加载控件message弹框加载进度条选择框选择控件选项卡文本输入框消息提示提示1提示框  2顶部导航条  3......
  • 用Indy控件访问HTTPS
    https://www.cnblogs.com/guorongtao/p/11976664.html访问Web网站,最简单用法直接使用TIdHTTP控件:例如:AA:=IdHTTP1.Get('www.baidu.com.');访问https的网站,需要SSL库。在Windows下,去https://indy.fulgan.com/SSL/下载最新的SSL的库。     openssl-1.......
  • 直播app开发搭建,ImageView 圆角实现 系统自带控件
    直播app开发搭建,ImageView圆角实现系统自带控件<androidx.cardview.widget.CardView    android:layout_width="120dp"    android:layout_height="120dp"    android:layout_centerHorizontal="true"    android:layout_marginTop=&quo......
  • 【盘点】界面控件DevExpress WPF的几大应用程序主题
    DevExpressWPF控件包含了50+个应用程序主题和40个调色板,用户可以在发布应用程序是指定主题,或允许最终用户动态修改WPF应用程序的外观和样式,其中主题带有调色板,可以进一步个性化您的UI!PS:DevExpressWPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。......
  • 用pageOffice控件实现 office word文档在线编辑 表格中写数据的方法
    PageOffice对Word文档中Table的操作,包括给单元格赋值和动态添加行的效果。1应用场景OA办公中,经常要在文档的指定位置表格,填充后端指定数据。如word文档中,表格数据如下表格中人员信息怎么把后端的关键数据,填充到word文档表格中呢?2实现方法文档中设置好书签,设置好表......
  • pb dw中checkbox控件在点选后马上取消勾选的方法
    需求:pbdw中的checkbox列在点击选择时,判断之前某列的值,如不满足条件,则取消勾选。使用过的方法及解释:1、在itemchanged事件中写dw.objext.cbx[row]=0.不能达到要求。虽然itemchanged事件中的data变成了0.但是dw行中的checkbox的勾选状态并未被取消。2、在itemchanged事件中......