• 简单的数据绑定和ADO.NET的应用


    高手莫取笑,菜鸟可学习!我也是菜鸟来的,O(∩_∩)O~呵呵~~,大家共同探讨,共同学习,有什么好的学习方式和经验可提出来,大家共同进步!

    本实例是在VS2005建立三个FORM窗体,代码如下:

    1

     

    From1.cs

    using System;

    using System.Collections.Generic;

    using System.ComponentModel;

    using System.Data;

    using System.Drawing;

    using System.Text;

    using System.Windows.Forms;

    using System.Data.SqlClient;

     

    namespace sy2_2

    {

        public partial class Form1 : Form

        {

            public Form1()

            {

                InitializeComponent();

            }

            //修改密码处理事件

     

            private void button1_Click(object sender, EventArgs e)

            {

                SqlConnection conData = new SqlConnection();

                conData.ConnectionString = "server=localhost;Trusted_Connection=yes;Database=Car_DB";

                string str=string .Format ("select count(*) from userLogin where userID='{0}' and userPwd='{1}'",textBox1 .Text,textBox2.Text);

                SqlCommand cmd = new SqlCommand(str,conData);

                conData.Open();

                int i= (int)cmd.ExecuteScalar();

                if (textBox3.Text == textBox4.Text)

                {

                    if (i == 1)

                    {

                        string updateStr = string.Format("update userLogin set userPwd='{2}' where userID='{0}' and userPwd='{1}'", textBox1.Text, textBox2.Text, textBox3.Text);

                        cmd.CommandText = updateStr;

                        cmd.ExecuteNonQuery();

                        MessageBox.Show("密码修改成功!""提示"MessageBoxButtons.OK, MessageBoxIcon.Information);

                    }

                    else

                    {

                        MessageBox.Show("旧密码或用户输入有误,请重新输入!""提示"MessageBoxButtons.OK, MessageBoxIcon.Information);

                    }

                }

                else

                {

                    MessageBox.Show("新密码和确认密码不一致,请重新输入!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

                }

                conData.Close();

            }

            //退出按钮事件

     

            private void button2_Click(object sender, EventArgs e)

            {

                Application.Exit();

            }

     

        }

    }

     

    2

    Form2.cs

    using System;

    using System.Collections.Generic;

    using System.ComponentModel;

    using System.Data;

    using System.Drawing;

    using System.Text;

    using System.Windows.Forms;

    using System.Data.SqlClient;

     

    namespace sy2_2

    {

        public partial class Form2 : Form

        {

            public Form2()

            {

                InitializeComponent();

            }

     

            DataSet ds1, ds2;

            BindingManagerBase bmb1;

            SqlDBHelper sqlDB;

            //控件的简单绑定,用法都是一样的,只不过是重复的操作

            private void Form2_Load(object sender, EventArgs e)

            {

                sqlDB = new SqlDBHelper();

                string selectStr1 = "select * from user_inf";

                ds1 = sqlDB.getDataSet(selectStr1);

                string selectStr2 = "select * from Car_information";

                ds2 = sqlDB.getDataSet(selectStr2);

     

                Binding userID = new Binding("text", ds1, " .userID");

                userNameTxtBox.DataBindings.Add(userID);

                Binding userName = new Binding("text", ds1, " .userName");

                nameTxtBox.DataBindings.Add(userName);

                Binding userSex = new Binding("text", ds1, " .userSex");

                genderTxtBox.DataBindings.Add(userSex);

                Binding userAge = new Binding("text", ds1, " .userAge");

                birthDateTimePicker.DataBindings.Add(userAge);

                Binding userPost = new Binding("text", ds1, " .userPost");

                positionTxtBox.DataBindings.Add(userPost);

                Binding userIdCard = new Binding("text", ds1, " .userIdCard");

                idTxtBox.DataBindings.Add(userIdCard);

                Binding userPhone = new Binding("text", ds1, " .userPhone");

                telephoneTxtBox.DataBindings.Add(userPhone);

                Binding userEmail = new Binding("text", ds1, " .userEmail");

                eMailTxtBox.DataBindings.Add(userEmail);

                Binding userAdd = new Binding("text", ds1, " .userAdd");

                addressTxtBox.DataBindings.Add(userAdd);

     

                //CarID,品牌,车型,价格,排量,颜色,生产日期,产地,车系,登记日期,出售日期,备注,CarStatus

                Binding carID = new Binding("text", ds2, " .CarID");

                carIdTxtBox.DataBindings.Add(carID);

                Binding brand = new Binding("text", ds2, " .品牌");

                brandTxtBox.DataBindings.Add(brand);

                Binding type = new Binding("text", ds2, " .车型");

                carTypeTxtBox.DataBindings.Add(type);

                Binding price = new Binding("text", ds2, " .价格");

                priceTxtBox.DataBindings.Add(price);

                Binding displacement = new Binding("text", ds2, " .排量");

                displacementTxtBox.DataBindings.Add(displacement);

                Binding color = new Binding("text", ds2, " .颜色");

                colorTxtBox.DataBindings.Add(color);

                Binding proDateTime = new Binding("text", ds2, " .生产日期");

                produceDateTimePicker.DataBindings.Add(proDateTime);

                Binding proAddress = new Binding("text", ds2, " .产地");

                produceAddTxtBox.DataBindings.Add(proAddress);

                Binding carDepartment = new Binding("text", ds2, " .车系");

                carDepartmentTxtBox.DataBindings.Add(carDepartment);

                Binding register = new Binding("text", ds2, " .登记日期");

                registerDateTimePicker.DataBindings.Add(register);

                Binding saleDateTime = new Binding("text", ds2, " .出售日期");

                saleDateTimePicker.DataBindings.Add(saleDateTime);

                Binding carComtent = new Binding("text", ds2, " .备注");

                comtentTxtBox.DataBindings.Add(carComtent);

                

     

     

                sqlDB.allBind(ds1, dataGridView1, bindingSource1, bindingNavigator1);

                bmb1 = BindingContext[ds1, " "];

            }

            //切换面板时,视图的绑定对象改变;也可用几个视图,然后设置相对的显示和隐藏

     

            private void informationCtl_SelectedIndexChanged(object sender, EventArgs e)

            {

                switch (informationCtl.SelectedTab.Name)

                {

                    case "empTabPage":

                        {

                            sqlDB.allBind(ds1, dataGridView1, bindingSource1, bindingNavigator1);

                            bmb1 = BindingContext[ds1, " "];

                            break;

                        }

                    case "carTabPage":

                        {

                            sqlDB.allBind(ds2, dataGridView1, bindingSource1, bindingNavigator1);

                            bmb1 = BindingContext[ds2, " "];

                            break;

                        }

                    case "cusTabPage":

                        {

                            break;

                        }

                }

            }

     

            private void firstBtn_Click(object sender, EventArgs e)

            {

                bmb1.Position = 0;

            }

     

            private void previousBtn_Click(object sender, EventArgs e)

            {

                if (bmb1.Position > 0)

                {

                    bmb1.Position--;

                }

                else

                {

                    MessageBox.Show("这已经是第一条记录了!""提示");

                }

            }

     

            private void nextBtn_Click(object sender, EventArgs e)

            {

                if (bmb1.Position < bmb1.Count - 1)

                {

                    bmb1.Position++;

                }

                else

                {

                    MessageBox.Show("这已经是最后一条记录了!""提示");

                }

            }

     

            private void lastBtn_Click(object sender, EventArgs e)

            {

                bmb1.Position = bmb1.Count - 1;

            }

     

            private void bindingNavigatorMoveFirstItem_Click(object sender, EventArgs e)

            {

                bmb1.Position = 0;

            }

     

            private void bindingNavigatorMovePreviousItem_Click(object sender, EventArgs e)

            {

                bmb1.Position--;

            }

     

            private void bindingNavigatorMoveNextItem_Click(object sender, EventArgs e)

            {

                bmb1.Position++;

            }

     

            private void bindingNavigatorMoveLastItem_Click(object sender, EventArgs e)

            {

                bmb1.Position = bmb1.Count - 1;

            }

           //保存按钮事件

     

            private void SaveToolStripButton_Click(object sender, EventArgs e)

            {

                try

                {

                    sqlDB.con.Open();

                    switch (informationCtl.SelectedTab.Name)

                    {

                        case "empTabPage":

                            {

                                sqlDB.da = new SqlDataAdapter ("select * from user_inf",sqlDB .con);

                                SqlCommandBuilder cmdBD1 = new SqlCommandBuilder(sqlDB.da);

                                sqlDB.da.Update(ds1, " ");

                                MessageBox.Show("更新成功!");

                                break;

                            }

                        case "carTabPage":

                            {

                                sqlDB.da= new SqlDataAdapter ("select * from Car_information",sqlDB .con);

                                SqlCommandBuilder cmdBD2 = new SqlCommandBuilder(sqlDB.da);

                                sqlDB.da.Update(ds2, " ");

                                MessageBox.Show("更新成功!");

                                break;

                            }

                        case "cusTabPage":

                            {

                                break;

                            }

                    }

                }

                catch (Exception em)

                {

                    MessageBox.Show(em.Message);

                }

                finally

                {

                    sqlDB.con.Close();

                }

            }

        }

            

    }

    3

    MainFrm.cs

    using System;

    using System.Collections.Generic;

    using System.ComponentModel;

    using System.Data;

    using System.Drawing;

    using System.Text;

    using System.Windows.Forms;

    using System.Data.SqlClient;

     

    namespace sy2_2

    {

        public partial class MainFrm : Form

        {

            public MainFrm()

            {

                InitializeComponent();

            }

            private int i = 3;

            private void MainFrm_Load(object sender, EventArgs e)

            {

                string[] userType = new string[] {"超级管理员","管理员","普通用户"};

                userTypeCmbBox.DataSource = userType;

            }

            //判断登录用户级别,并做出相应的处理;例如普通用户无法查看

     

            private void sureBtn_Click(object sender, EventArgs e)

            {

                SqlConnection con = new SqlConnection("server=.;database=Car_DB;Trusted_Connection=true;");

                SqlCommand cmd = new SqlCommand();

                string SelectStr = string.Format("select count(*) from userLogin where userID='{0}' and userPwd='{1}' and Legalpower='{2}'"

                userTxtBox.Text.TrimStart(), PwdTxtBox.Text.TrimStart(),userTypeCmbBox .SelectedItem);

                cmd.CommandText =SelectStr;

                cmd.Connection = con;

                con.Open();

                int result =Convert.ToInt32(cmd.ExecuteScalar());

                if (i > 0)

                {

                    if (result == 1)

                    {

                        MessageBox.Show("欢迎" + userTypeCmbBox.Text + "登录!""欢迎"MessageBoxButtons.OK, MessageBoxIcon.Information);

                        switch (userTypeCmbBox.Text)

                        {

                            case "超级管理员":

                            case "管理员":

                                Form2 frm2 = new Form2();

                                frm2.Show();

                                this.Hide();

                                break;

                            case "普通用户":

                                MessageBox.Show("普通用户界面还未创建,请获取更高的权限!""没有权限查看");

                                break;

                        }

                    }

                    else

                    {

                        MessageBox.Show("用户名和密码输入有误或选择用户类型不正确!""登录失败"MessageBoxButtons.OK, MessageBoxIcon.Information);

                        PwdTxtBox.Clear();

                        i--;

                    }

                }

                else

                {

                    MessageBox.Show("登录次数超过限制次数,系统自动退出!","系统退出",MessageBoxButtons.OK,MessageBoxIcon.Warning);

                    Application.Exit();

                }

            }

            //退出按钮事件

     

            private void cancelBtn_Click(object sender, EventArgs e)

            {

                Application.Exit();

            }

           //修改密码按钮事件

     

            private void modifyPwdBtn_Click(object sender, EventArgs e)

            {

                Form1 frm1 = new Form1();

                frm1.Show();

            }

        }

    }

     

    引用的DBHelper.cs

    using System;

    using System.Collections.Generic;

    using System.Text;

    using System.Data.OleDb;

    using System.Data .SqlClient;

    using System.Data;

    using System.Windows.Forms;

     

     

    namespace sy2_2

    {

        class AccessDBHelper

        {

           //连接Access的groupattachment1数据库语句

            private static string conStr1 = "provider=Microsoft.Jet.OLEDB.4.0;Data Source=groupattachment1.mdb;";

            public static OleDbConnection conData1 = new OleDbConnection(conStr1);

     

            public DataSet getDataSet(string str)

            {

                conData1.Open();

                OleDbDataAdapter da1 = new OleDbDataAdapter(str,conData1);

                DataSet ds1 = new DataSet();

                da1.Fill(ds1," ");

                conData1.Close();

                return ds1;

            }

            //判断更新是否成功

     

            public Boolean updateSql(string sql)

            {

                OleDbCommand cmd1 = new OleDbCommand(sql,conData1);

                try

                {

                    conData1.Open();

                    cmd1.ExecuteNonQuery();

                    return true;

                }

                catch (Exception e)

                {

                    MessageBox.Show(e.Message ,"提示",MessageBoxButtons .OK,MessageBoxIcon.Information);

                    return false;

                }

                finally

                {

                    conData1.Close();

                }

            }

        }

        class SqlDBHelper

        {

           //连接数据库SQL的Car_DB数据库语句

            private static string conStr = "Data source=localhost;Initial Catalog=Car_DB;Integrated Security=SSPI";

            public SqlConnection con = new SqlConnection(conStr);

            public SqlDataAdapter da;

            //通过sql语句得到数据集对象

            public DataSet getDataSet(string str)

            {

                da = new SqlDataAdapter(str,con);

                con.Open();

                DataSet ds = new DataSet();

                //SqlCommandBuilder cmdBd = new SqlCommandBuilder(da);

                da.Fill(ds," ");

                con.Close();

                return ds;

            }

           //判断更新是否成功  

     

            public Boolean updateSql(string sql)

            {

                SqlCommand cmd = new SqlCommand(sql,con);

                try

                {

                    con.Open();

                    cmd.ExecuteNonQuery();

                    return true;

                }

                catch (Exception e)

                {

                    MessageBox.Show(e.Message, "提示"MessageBoxButtons.OK, MessageBoxIcon.Information);

                    return false;

                }

                finally

                {

                    con.Close();

                }

            }

            //绑定数据源    

            internal void allBind(DataSet ds, DataGridView dgv, BindingSource bs, BindingNavigator bn)

            {

                BindingSource bind = new BindingSource();

                bind.DataSource =ds.Tables [0];

                dgv.DataSource = bind;

                bs.DataSource = bind;

                bn.BindingSource =bind;

            }

        }

    }

     

  • 相关阅读:
    CUBRID学习笔记 41 sql语法之select
    CUBRID学习笔记 40 使用net修改数据
    CUBRID学习笔记 39 net使用dataset 返回查询的数据
    CUBRID学习笔记 38 net调用java的函数过程
    CUBRID学习笔记 36 在net中添加多行记录
    CUBRID学习笔记 37 ADO.NET Schema Provider
    CUBRID学习笔记 35 net驱动错误码和信息 cubrid教程示例
    程序员应该关注的一些事儿
    如何区分一个程序员是“老手“还是“新手“?
    10个调试和排错的小建议
  • 原文地址:https://www.cnblogs.com/huangjianwu/p/1492941.html
Copyright © 2020-2023  润新知