WinFrom开采小案例

C\

cb_selectNpp.DataSource = table_dataProvider;  //
绑定数据源,为table
 cb_selectNpp.DisplayMember = “电厂名称”;   
//设定下拉框中显得的剧情,”电厂名称”为table_dataProvider中的某一列
 cb_selectNpp.ValueMember = “ID”;  
//设定下拉框的值,ID与电厂名称对应,也是table_dataProvider中的一列
 cb_selectNpp.SelectedIndex = 0;  
//最初时,暗许选项第生机勃勃行

付出条件:

int nppid = Convert.ToInt16(cb_selectNpp.SelectedValue卡塔尔(英语:State of Qatar); 
//获取当前选中央银行的ID

VisualStudio2015

 

十大信誉官网,数据库:

SQLserver2008

程序主分界面:

 十大信誉官网 1

注释:

lbl标签:

次第中的lbl标签:编号、人数、姓名、性别、请输入要询问的音讯,这里他们只起到了注脚效果与利益,全部命名常常为私下认可,只改善Text文本。

前后相继中的lbl标签:编号前面包车型地铁0,他起到了同步表中当选人士的id(编号卡塔尔国人数前边的0,他的效能是任何时候更新表中总人数,他们的命名要正规,后边的代码技术编写更有益。

按钮:

次第中的btn开关:保存、重新恢复生机设置、退出、增添、查询,要想完成他们的效果,就得双击他们接下来在中间打上代码,手艺加之他们成效,这里要介意按键的命名规范。

保存按键成效:

程序运营时,在姓名TextBox文本框中、性别TextBox文本框中,分别输入人士的真名、性别,然后按保存按键,人士的新闻就被存到了数据库中。

运行图:

十大信誉官网 2

 

保存按键代码:

                if (checkinput())
                {
                using (SqlConnection con = new SqlConnection(conStr))
                {
                    con.Open();
                    string sql = "insert B(name,sex) values  (@name,@sex)";
                    SqlCommand cmd = new SqlCommand(sql, con);
                    cmd.Parameters.Add(new SqlParameter("@name", txtname.Text));
                    cmd.Parameters.Add(new SqlParameter("@sex", txtsex.Text));
                    int fh = cmd.ExecuteNonQuery();
                    if (fh > 0) MessageBox.Show("添加成功!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                    sj();
                    rs();
                }
            }

此地调用了检查测量检验输入的完整性方法:checkinput,假若姓名TextBox文本框或性别TextBox文本框中,姓名没输入,程序会提醒请输入人名,性别没输入,程序会提醒请输入性别。

检测输入的完整性方法代码:

            private bool checkinput()
            {
            if (txtname.Text == null || txtname.Text == "")
            {
                MessageBox.Show("请输入姓名", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txtname.Focus();
                return false;
            }
            if (txtsex.Text == null || txtsex.Text == "")
            {
                MessageBox.Show("请输入性别", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txtsex.Focus();
                return false;
            }
            return true;
        }

音信输入破损运作效果图:

十大信誉官网 3

十大信誉官网 4

保留开关的代码里还调用了,sj(卡塔尔(قطر‎;rs(卡塔尔(英语:State of Qatar);这三个办法,sj(卡塔尔(قطر‎;那么些办法起到了刷新扩大职员的消息到DGV表格中,rs(卡塔尔国;这些措施起到了修改lbl人数标签前边的数据作用,更新了总人数的数量音信。

新加壹人手运行图:

十大信誉官网 5

音信输入完整增添立业成家,大家看人数前面包车型大巴数字是:12,当本身按分明未来,奇妙的作业就发出了!

十大信誉官网 6

人数后边的数字12改为了13,这里便是因为保存开关里调用了,rs(卡塔尔;那么些办法所以才有修改数据的功效

rs(卡塔尔国;方法的代码:

            private void rs()
           {
            using (SqlConnection con = new SqlConnection("server=.;uid=sa;pwd=sa;database=YG"))
            {
                con.Open();
                string sql = "select count(*)from B";
                SqlCommand cmd = new SqlCommand(sql, con);
                object cx = cmd.ExecuteScalar();
                //lblRS.Text = cx.ToString(); 将查询到的结果同步标签
                lblrs.Text = cx.ToString(); //将查询到的结果同步到lbl标签
            }
        }

新保存的人士数量,立时就会在DGV表格中找到:

十大信誉官网 7

那是因为保存开关代码里调用了,sj(卡塔尔;这些艺术,将新保存的人口消息更新到了DGV表格中。

sj(卡塔尔;方法的代码:

            private void sj()
            {
            SqlConnection con = new SqlConnection(conStr);//创建连接对象指定连接字符串
            string sql = "select*from B";//sql查询语句
            SqlDataAdapter cx = new SqlDataAdapter(sql, con);//连接数据库并执行sql语句
            DataTable ta = new DataTable();//创建表对象
            cx.Fill(ta);//将查询的内容填充到表对象
            dataGridView1.DataSource = ta;//设置DGV表的数据来源
        }

保留开关代码:

                if (checkinput())//调用检测输入的完整性方法
                {
                using (SqlConnection con = new SqlConnection(conStr))//创建连接对象,指定连接字符串
                {
                    con.Open();//打开连接
                    string sql = "insert B(name,sex) values  (@name,@sex)";//SQL语句,在数据库里要执行的操作
                    SqlCommand cmd = new SqlCommand(sql, con);//Cmand命名对象执行操作
                    cmd.Parameters.Add(new SqlParameter("@name", txtname.Text));//指定参数跟对应的数据匹配
                    cmd.Parameters.Add(new SqlParameter("@sex", txtsex.Text));//指定参数跟对应的数据匹配
                    int fh = cmd.ExecuteNonQuery();//ExecuteNonQuery(),这个方法在执行增、删、改的时候就调用它
                    if (fh > 0) MessageBox.Show("添加成功!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                    sj();//调用这个方法更新DGV表格中的数据
                    rs();//调用这个方法更行lbl总人数的数据
                }
            }

 SqlCommand对象的四个措施:

ExcuteScalar():

那几个方法只回去查询结果集的首先行第一列

ExcuteNonQuery():

实行多个SQL语句,重临受影响的行数,这些办法首要用以推行对数据库实行扩张、校正、删除操作

ExcuteReader():

查询多行多列

重新苏醒设置按键的代码:

 

            lblid.Text = "0";//lbl文本默认为0
            txtname.Clear();//将Text文本框的内容清空
            txtsex.Clear();//将Text文本框的内容清空
            txtname.Focus();//设置焦点

 

运行图:

十大信誉官网 8

输入好音信后,点击重新初始化开关就能够清空输入的新闻

十大信誉官网 9

 退出开关的代码:

  Application.Exit();

点击退出后,程序就能被关闭。

加上开关代码:

            添加人员 a = new 添加人员();//创建窗体对象
            a.ShowDialog();//以对话框模式弹出
            sj();//调用sj();这个方法来更新添加的人员数据到DGV表格中

此间丰富开关的成效跟保存按键的职能是相近的,目标都感到着丰硕人士数量,只可是我们在这里地做了有些代码知识的强大。

运行图:

十大信誉官网 10

输入的新闻残破的话,会提示请输入完整的新闻,这里也得写二个检查测验输入完整性的法子,音信输入完整后就足以点击保存了,保存按键的代码和地点的切近,点击再次来到按键后当前窗体就能够停业再次来到到人口管理主分界面。

将SQL数据库中的数据读取到程序的DGV表格中代码:

            private void sj()
            {
            SqlConnection con = new SqlConnection(conStr);//创建连接对象指定连接字符串
            string sql = "select*from B";//sql查询语句
            SqlDataAdapter cx = new SqlDataAdapter(sql, con);//连接数据库并执行sql语句
            DataTable ta = new DataTable();//创建表对象
            cx.Fill(ta);//将查询的内容填充到表对象
            dataGridView1.DataSource = ta;//设置DGV表的数据来源
        }

其实那些法子在眼下就早就面世过了,当大家新添壹个人手的时候,就得调用sj(卡塔尔国;那几个措施来更新DGV表格中的数据。

查询按键代码:

            SqlConnection con = new SqlConnection(conStr);//创建连接对象指定连接字符串
            //string sql = "select * from B where name like '%"+ txtcx.Text + "%'";
            string sql = string.Format("select*from B where name like'%{0}%' or sex like'%{1}%' or id like'%{2}%'",txtcx.Text,txtcx.Text,txtcx.Text);//SQL语句根据TextBox输入的查询条件进行模糊查询
            DataTable b1 = new DataTable();//创建表对象
            SqlDataAdapter cx1 = new SqlDataAdapter(sql, con);//连接数据库并执行sql语句
            cx1.Fill(b1);//将查询的内容填充到表对象
            dataGridView1.DataSource = b1;//设置DGV表的数据来源

运行图:

十大信誉官网 11

在TextBox文本框中,根据姓查询这里输入了叁个:刘
 DGV表格中就能够来得全数姓刘的职员音讯

运行图:

十大信誉官网 12

在TextBox文本框中,依据性别查询这里输入了二个:男
DGV表格中突显了全数性别为男的音信。

 那么成效都大约快到家了,我们会发觉有了增加生产技能,却少了除去跟改善的法力!!!

运行图:

十大信誉官网 13

 

在那间大家能够在DGV表格里加一个上下文菜单,来兑现改过和删除的功力。

右键菜单中期维更正开关的代码:

            添加人员 a = new 添加人员();//创建窗体对象
            a.Text = "修改人员";//将添加人员的窗体Text文本修改为“修改人员”
            a.Tag = dataGridView1.SelectedRows[0].Cells["id"].Value.ToString();//将选中的数据传递给修改人员窗体
            a.txtname.Text = dataGridView1.SelectedRows[0].Cells["name"].Value.ToString();//DGV表中选中的人员名字传递到修改人员窗体
            a.txtsex.Text = dataGridView1.SelectedRows[0].Cells["sex"].Value.ToString();///DGV表中选中的人员性别传递到修改人员窗体
            a.ShowDialog();//以对话框模式弹出

 运行图:

十大信誉官网 14

校正人口的窗体与点击增添按键弹出的窗体是同二个窗体,这里只可是是用代码校订了窗体的Text文本而已,DGV表中选中的多寡也一起到了改变人口窗体对应的Text文本框中,在这里边我们只必要一贯改动那么些要修正的地点就KO了。

运行图:

十大信誉官网 15

改良人口窗体中保留开关代码:

                    if (checkinput())
                    {
                    if (this.Text == "添加人员")
                    {
                    using (SqlConnection con = new SqlConnection(conStr))
                    {
                        con.Open();
                        string sql = "insert B(name,sex) values  (@name,@sex)";
                        SqlCommand cmd = new SqlCommand(sql, con);
                        cmd.Parameters.Add(new SqlParameter("@name", txtname.Text));
                        cmd.Parameters.Add(new SqlParameter("@sex", txtsex.Text));
                        int fh = cmd.ExecuteNonQuery();
                        if (fh > 0) MessageBox.Show("添加成功!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                        this.Close();
                    }
                    }
                    else
                    {
                    using (SqlConnection con = new SqlConnection(conStr))
                    {
                        con.Open();
                        //update<修改对象所在表> set < 修改对象 >=< 值 > where < 条件对象 >=< '条件内容' >
                       string sql = "update B set name=@name,sex=@sex where id=@id";
                        SqlCommand cmd = new SqlCommand(sql, con);
                        cmd.Parameters.Add(new SqlParameter("@id", this.Tag.ToString()));
                        cmd.Parameters.Add(new SqlParameter("@name", txtname.Text));
                        cmd.Parameters.Add(new SqlParameter("@sex", txtsex.Text));
                        int fh = cmd.ExecuteNonQuery();
                        if (fh > 0) MessageBox.Show("修改成功!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                        this.Close();
                    }
                }
            }

校订人口中的保存按键代码,跟点击增多开关弹出的窗体中保存按键代码生龙活虎致,逻辑恐怕失常不便领会,多看四遍就耳濡目染了!

右键菜单中去除按键的代码:

                   if (dataGridView1.SelectedRows.Count > 0)
                   {
                   string xz = dataGridView1.SelectedRows[0].Cells["id"].Value.ToString();
                   using (SqlConnection con = new SqlConnection(conStr))
                   {
                    con.Open();
                    string sql = string.Format("delete from B where id='{0}'", xz);
                    SqlCommand cmd = new SqlCommand(sql, con);
                    int fh = cmd.ExecuteNonQuery();
                    if (fh > 0)
                    {
                        MessageBox.Show("删除成功!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                        sj();
                        rs();
                    }
                    else
                    {
                        MessageBox.Show("删除失败!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        sj();
                        rs();
                    }
                }

增、删、改、查,的代码流程都大约相近:首先创造连接对象内定连接字符串,打开连接、sql语句在数据Curry要做如何操作(增、删、改、查)、然后成立Command命令对象连接数据库并推行sql语句,定义一个变量来接收方式的重返值,增、删、改操作时,调用ExecuteNonQuer这几个办法,查询操作时,平日调用的是ExcuteReader这一个主意,要做的操作不一样,调用的秘技也会不一样,定义变量时也得定义相配那些方法的变量。

运行图:

十大信誉官网 16

十大信誉官网 17

三个轻松的先后案例就讲授完了,写那篇博客也不求什么好处,只是梦想能带给初读书人一个启发功用,也相当多年今后学了多门语言的和谐,连最早的C#编制程序语言结构逻辑思谋全都忘光了,仍是可以够在博客上回看一下,只要你直接在。