求助,C#的窗体程序如何进行数据更新。

图片说明
图片说明
在小窗口添加数据后在大窗口的视图同步刷新数据怎么实现啊。。。

这个是小窗口的代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace SupperMarket
{
public partial class FrmEditStore : Form
{
DataSet ds;
SqlDataAdapter sda;

    public FrmEditStore()
    {
        InitializeComponent();
    }

    private void FrmEditStore_Load(object sender, EventArgs e)
    {
        GetStoreClass();
        this.cboStoreClass.DataSource = ds.Tables["CommoditySort"];
        this.cboStoreClass.ValueMember = "SortID";
        this.cboStoreClass.DisplayMember = "SortName";
    }

    public void GetStoreClass()
    {
        string sql = "select * from CommoditySort";
        DBHelper db = new DBHelper();
        try
        {
            ds = new DataSet();
            sda = new SqlDataAdapter(sql, db.Connection);
            sda.Fill(ds, "CommoditySort");
        }
        catch (Exception)
        {
            MessageBox.Show("系统错误!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        }
    }

    //是否为特价的控制
    private void cbIs_CheckedChanged(object sender, EventArgs e)
    {
        if (this.cbIs.Checked == false)
        {
            this.nudPriceOf.Enabled = false;//是否禁用用控件
            this.nudPriceOf.ReadOnly = true;//是否为只读状态
        }
        else
        {
            this.nudPriceOf.Enabled = true;
            this.nudPriceOf.ReadOnly = false;
        }
    }

    private void btnSave_Click(object sender, EventArgs e)
    {
        if (this.txtStoreName.Text.Trim().Length != 0 || this.nudPrice.Value != 0)
        {
            int num = SaveStore();
            if (num > 0)
            {
                MessageBox.Show("商品添加成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else if (num == 0)
            {
                MessageBox.Show("商品添加失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                MessageBox.Show("系统错误!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
        else
        {
            MessageBox.Show("请填写商品信息!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
    }

    public int SaveStore()
    {
        int num;
        int flag = 0;
            if (this.cbIs.Checked == false)
            {
                num = 0;
            }
            else
            {
                num = 1;
            }
            StringBuilder sb = new StringBuilder();
            sb.AppendLine("insert commodity(CommodityName,SortID,CommodityPrice,IsDiscount,ReducedPrice)");
            sb.AppendFormat(" values('{0}',{1},{2},'{3}',{4})", this.txtStoreName.Text, this.cboStoreClass.SelectedValue, this.nudPrice.Value, num, this.nudPriceOf.Value);
            DBHelper db = new DBHelper();
            try
            {
                db.OpenConnection();
                SqlCommand com = new SqlCommand(sb.ToString(), db.Connection);
                flag = com.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                flag = -1;
            }
            finally
            {
                db.CloseConnection();
            }
        return flag;
    }

    private void btnClean_Click(object sender, EventArgs e)
    {
        this.Close();
    }
}

}

大窗口的代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace SupperMarket
{
public partial class FrmStore : Form
{
DataSet ds;
SqlDataAdapter sda;

    public FrmStore()
    {
        InitializeComponent();
    }

    public void GetStore()
    {
        StringBuilder sb = new StringBuilder();
        sb.AppendLine("select c.CommodityID,c.CommodityName,cs.SortName,c.CommodityPrice,c.IsDiscount,c.ReducedPrice");
        sb.AppendLine(" from commodity c");
        sb.AppendLine(" join CommoditySort cs on cs.SortID = c.SortID");
        DBHelper db = new DBHelper();
        try
        {
            ds = new DataSet();
            sda = new SqlDataAdapter(sb.ToString(), db.Connection);
            sda.Fill(ds, "commodity");
        }
        catch (Exception ex)
        {
            MessageBox.Show("系统错误!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        }
    }

    private void FrmStore_Load(object sender, EventArgs e)
    {
        GetStore();
        this.dgvStoreDialog.AutoGenerateColumns = false;
        DataView dv = new DataView(ds.Tables["commodity"]);
        this.dgvStoreDialog.DataSource = dv;

    }

    private void tsbExit_Click(object sender, EventArgs e)
    {
        this.Close();
    }

    private void tvStoreClass_AfterSelect(object sender, TreeViewEventArgs e)
    {
        int num = this.tvStoreClass.SelectedNode.Level;
        string choice = this.tvStoreClass.SelectedNode.Text;
        this.dgvStoreDialog.AutoGenerateColumns = false;
        DataView dv = new DataView(ds.Tables["commodity"]);
        int flag = choice.Equals("特价商品") ? 1 : 0;
        if (num == 1)
        {
            dv.RowFilter = string.Format("IsDiscount = {0}", flag);
        }
        this.dgvStoreDialog.DataSource = dv;
    }

    private void tsbAdd_Click(object sender, EventArgs e)
    {
        FrmEditStore fes = new FrmEditStore();
        fes.ShowDialog();
    }
}

}

0
扫码支付0.1元 ×
其他相关推荐
c#中怎样在窗体间相互传送数据,且能在修改窗体A的数据时,窗体B能够根据窗体A的数据同时作出反应修改其相应数据
1,在子窗体中自定义一个构造函数,参数类型是主窗体,当要显示子窗体的时候,就用这个构造函数来实例化子窗体,然后把this指针传进去,说起来太抽象了,我大概一写大家应该就明白了:    public class frmMain:Form    {         ...         frmControl controlForm=new frmControl(this);
c#如何拖动无标题栏窗体
样例程序:c#中如何拖动无标题栏窗体c#中如何拖动无标题栏窗体
c#如何创建不规则窗体
样例程序:c#中如何创建不规则窗体,c#中如何创建不规则窗体
c#如何创建文字形窗体
样例程序:c#中如何创建文字形窗体,c#中如何创建文字形窗体
C#如何使用窗体分隔控件
样例程序:C#中如何使用窗体分隔控件,C#中如何使用窗体分隔控件
c#窗体控件datagriview与dataset的运用:修改,新增,删除,查找,保存,更新
最近学习c#中关于数据库的一部分(很浅的一部分,毕竟没有学过数据库)。 现在我介绍一下通过dataset完成数据库的一些基本操作(建议先看我上一篇关于数据库常用对象的介绍在看本文) 新增: DataRow row = ds.Tables[0].NewRow(); row[0] = n; row[1] = Name.Text.ToString(); row[2] =
C#窗体程序对数据库的查询与添加
结果如图所示: 启动界面 查询---支持模糊查询 点击add后的添加界面 添加数据 在数据库中查看是否添加入数据 第一步:创建数据库-----StudentGrade,并建立Student表和Grade表,Sid,Gid自增,Student.Gid建立外键与Grade.Gid主健关联。此处的年级列...
c#操作第三方窗体
本人工作的单位是一家加工制造的单位,有时候必须要对客户提供的一些测试软件进行操作,在我没来这家公司之前,我发现他们都是在电脑上同时打开很多的窗口,除了第三方的测试软件外还有自己的控制窗口,整个电脑屏幕就看起来很乱,而且在进行自动点等击操作的时候就会更加麻烦,每次打开软件都需要慢慢调整坐标,特别的麻烦,所以我就想是否可以将第三方的窗体融入到我的界面上,网上的资料比较少,查找了许多资料,终于如愿以偿,...
C#做的WIN窗体程序-对表的增删改查,导出excel导入,导入数据库
连接数据库(sql2008),压缩包里有源码和SQL代码(3个表,student,college,admin),实现对数据的增删改查,导出excel导入,导入数据库。还有对treeView的应用。该源码可作为初学者很好的参考资料。
C#子线程创建新窗体心得(对Windows窗体控件进行线程安全调用)
自己在写socket通讯碰到这样的问题: 除主UI线程外,有一个后台socket监听线程一直在监听新消息,新消息到来后,右下角弹出一个新窗口提醒用户。 如果用监听线程创建并弹出窗体的话,由于监听线程一直处于阻塞监听状态,没功夫处理UI方面的东西,所以新弹出的窗口会卡死在那里。 解决方法: 应该在主UI线程上创建窗体,通过主线程里面的一个窗体或控件调用Invoke()方法,让创建和显
在VS2005.NET平台下用C#和Access实现用户登录界面的窗体应用程序
在VS2005.NET平台下用C#和Access实现用户登录界面的窗体应用程序,基本功能,供初学者入门参考.
C# winform窗体程序的美化之路
写在前面: 今天帮同学做毕业设计一个简单的Windows窗体程序实现备忘录的效果,要求使用数据库,我想着很简单于是上手开始做,两天完成,于是同学拿去给老师检查,检查后老师认为不错功能实现完整。就是。。。界面太!丑!了! 强迫症的我当然不能忍受于是今天学习一下c#winform窗体程序的美化(我也是新手,各位大佬请多多指教)。 因为最近写的安卓程序中用了大量第三方开源框架,就想着c#会不会也有
C#窗体自动刷新
最近做C#的项目,程序运行时间比较长,
c#窗体应用程序实现对数据库的增删查改
c#窗体应用程序实现对数据库的增删查改, 不包含数据库文件, 请自行根据代码构建数据库表格
基于VS 2015+C# 编写的串口通信窗体程序实现
利用C#语言编写的窗体应用程序,可以简单实现字符串的串行通信,既可以发送信息,也可以接受信息;本人利用笔记本电脑的两个USB口(两个串口转接成两个USB口)+串行通信助手进行实验,可以实现串行通信(数据的发送与接收)。
使用C#开发数据库应用系统_初识Windows程序
第1章 初识Windows程序 一.第一个Windows程序 1.创建Windows程序 不需要一行代码,就能够运行出一个窗体,这得益于Visual Studio和.NET Framework的支持。 2.认识Windows程序 Form1.cs:窗体文件,程序员对窗体编写的代码一般都存放在这个文件中。 From1.Designer.cs:窗体设计文件,其中的代码是由Visual St
C# winform 不同的窗体对同一XML文件进行读取
对数据进行写入    DataTable dingxing = new DataTable();      dingxing.Columns.Add("checker");      dingxing.Columns.Add("checkmac");      dingxing.Columns.Add("weixie");      dingxing.Columns.Add("lu
Winform 工程反编译后窗体如何显示
Winform反编译后,如果想要让它象正常的工程一样,可以在窗体顷刻
C#窗体小程序,实现文件夹创建、删除,文件创建、删除、移动!
内容包含C#的各种文件操作,包括文件夹创建、删除,文件创建、删除、移动,有源代码,注释清楚!
C#窗体编程实现客户端和服务器网口通讯
用C#窗体界面程序实现客户端和服务器的通讯,用到套接字socket。
c# 一个窗体对另一个窗体的数据进行修改(事件)
在一个论坛上下的代码,一个窗体对另一个窗体的数据进行修改(事件),没试过,不知道好不好用
C#窗体程序--简单文本编辑器
建立一个窗体文件,实现对文件的编辑保存和对txt文件的打开 界面设计: 程序源代码://form1.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using
关于C#的windons窗体的Excel导入导出功能(含数据库)部门知识点解析和功能实例
在数据库应用开发中,经常会需要到Excel中的数据直接导入到SQL数据库中;另外为了方便对数据库中的数据进行打印。有时候需要导出数据库中的数据到Excel中,借助Excel自身的打印功能进行报表打印。窗体控件:4个Button,1个DataGridView,1个对话框OpenFileDialog 1、导入文件功能 添加对话框控件选中要导入的Excel文件 /// <summary>
C#Windows窗体程序+SQL server2008简单的数据库增删改查 VS2013
    工具:VS2013 数据库:SQL server 简单说明:根据老师上课给的代码,进行了简单的改正适用于VS2012环境,包括注册、登录、查询、修改、删除功能,多数参考了网上的代码 百度云源代码连接testDAO:http://pan.baidu.com/s/1c0CTRgs 遇见的问题: 1、字符文本中字符太多: 在html中用的&amp;lt;a href=&quot; &quot;&amp;gt;,在.N...
c#窗体应用程序实现数据库增删改查
c#窗体应用程序实现数据库增删改查c#窗体应用程序实现数据库增删改查c#窗体应用程序实现数据库增删改查
c# 数据更新操作c# 数据更新操作
c# 数据更新操作c# 数据更新操作vc# 数据更新操作c# 数据更新操作
c#如何将winform窗体封装成可以引用的dll文件
待你涉及的窗体+功能涉及好,调试无bug后(以下是以vs2010测试成功的): 1.右击你的工程,“属性”——“应用程序”——“输出类型”——“下拉菜单中选择类库”——“保存”——右击项目---“生成”——完毕。 2.右击你的工程——“在windows资源管理器中打开文件夹”——在bin文件夹下面的:如果你是debug调试,就是debug文件夹下面会与有此项目一模一样的一个dll文件;如果你选
C# 程序简单实现加密解密程序代码
C# 程序简单实现加密解密程序代码
C#.net实现windows窗体程序对Excel文件的读写操作
C#.net实现windows窗体程序对Excel文件的读写操作1 C#操作excel文件1.1 C#调用excel控件    首先要保证机器已经安装了Office,并安装了Excel。然后按以下步骤进行:    1)在项目中添加引用;    2)在com标签页中,找到“Microsoft Excel 11.0 Object Library”添加进来;    3)在后台cs类中,引入一下命名空间:代码:using Microsoft.Office.Interop.Excel; using ExcelApp
c#经典编程实例(六定时器Timer和工具条和父窗体和子窗体的创建)
一:首先先看一个简单的例子,就是倒计时 在工具箱中 的组件中选取Timer点击设置,重点是enable的设置 代码如下: int n = 10; private void timer1_Tick(object sender, EventArgs e) { n--; label1.Text =
C#窗体应用程序创建启动界面
最近研究了一下如何利用C#窗体应用程序如何创建启动界面,在网上查了一下感觉都是很乱的,不知所云,本来很简单的一个事情让他们给说的神乎其神,让人望而却步,后来自己查书按照《C#开发实战1200例》中的实例193,自己写了一个启动界面的程序。先总结如下,以便大家查阅。 首先,创建一个C#窗体应用程序,这里主窗口就不加什么东西了,主要是为了创建启动界面。在应用程序中重新添加一个窗体命名为Frm_sta
C# Winform——两个窗体之间通信!!!
c#窗体通信
C# Windows窗体程序 连接 Access数据库增删改查 例子
自己做的一个winfrom程序与access数据库连接的增删改查的例子,还带有导出到word的功能,给需要的朋友们参考
C#窗体程序对数据库的增删改查操作(三层架构).
基于vb进行数据库的增删改查操作 sql语句 c#
C#窗体应用程序之随机数生成
首先构造一个随机数对象 Random r = new Random();                    然后用r调用随机函数:r.Next(0, this.Width)。
学习(一)C#利用窗体打开Excel文件进行正常访问和写入
首先,在对Excel文件进行操作时,首先应该注意引用(word为一起加的,这里为非必要) using MSWord = Microsoft.Office.Interop.Word; using MSExcel = Microsoft.Office.Interop.Excel; (1)、能打开指定的Excel文件 private void button1_Click(obj
C#计算器之窗体应用程序最简单加法计算器
1、双击计算按钮,你会看到如下代码。 2、申明三个“string”类型的变量,和三个“double”类型的变量。 public partial class Form1 : Form { public Form1() { InitializeComponent(); } private voi...
C#计算器加减乘除窗体功能的实现
C#计算器加减乘除窗体功能的实现。使用C#窗体控件等实现了一个两个数之间的加减乘除等功能,是当初学习C#写的一个小程序。本来想设置资源分为0的,为啥最低是1啦?如有哪位知道怎么能设置资源分为0,敬请告知,因为我有些上传的资源设置为1的原本都是希望是0的,可惜设置不了。极度鄙视那些骗资源分的人。
如何用C#中的Windows窗体写一个抽奖小程序。
一、使用工具。 1.Visual Studio2017(我用的是2017,不去讨论其他版本了)。 2.Windows窗体中的工具:Button、Label、Timer。 二、简单介绍三个工具的作用。 1.Button:用来作按钮,抽奖的开始按钮。 2.Label:用来显示参与抽奖的人员名单。 3....
C#编写Windows桌面应用程序读取执行文件当前路径
//读取程序执行的当前文件夹路径 private string CurrentPath = System.AppDomain.CurrentDomain.BaseDirectory;
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 如何学习python程序 如何学好python程序