C#简单功能(一)

1设计一基于window窗体的登录界面,窗体居中显示。要求用户输入用户名和密码,若登录失败则显示用户名或密码错误,若登录成功则显示第二个窗体。第二个窗体显示数据库内的数据,能实现数据的删除功能。

  1. 第一步:基于Windows窗体的登录界面设计:

在这里插入图片描述
注意事项:注意居中

  1. 第二步:登录界面代码设计:
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 C_shape考核第一题
{
    public partial class Form1 : Form
    {
        Form2 f2 = new Form2();
        public Form1()
        {
            InitializeComponent();
        }
        private void btn_Login_Click(object sender, EventArgs e)
        {
            //定义两个字符变量接收用户名和密码输入
            string id = txtID.Text;
            string pwd = txtPwd.Text;
            //定义连接字符
            string str = @"Data Source = LAPTOP-KKS0SHEJ; 
                           Database = login; 
                           Integrated Security = True;"; 
            //创建数据库连接对象
            SqlConnection conn = new SqlConnection(str); 
            //打开数据库连接
            conn.Open();  

            //验证输入
            if (txtID.Text =="" || txtPwd.Text == "" )
            {
                MessageBox.Show("请输入非空的用户名或密码");
            }
            else
            {
                string sql = "select * from login where id = '" + id + "' and pwd ='" + pwd + "'";
                SqlCommand cmd = new SqlCommand(sql, conn);
                cmd.CommandType = CommandType.Text;
                SqlDataReader sdr = cmd.ExecuteReader(); 
                if(sdr.Read())
                {
                    //MessageBox.Show("登录成功"); 
                    f2.ShowDialog();
                    this.Close();
                }
                else
                {
                    MessageBox.Show("用户名或密码错误");
                }
            }
        }

3.第三步:数据操作界面设计:
在这里插入图片描述

4.第四步:数据操作界面代码设计:

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 C_shape考核第一题
{
    public partial class Form2 : Form
    {
        public static string str = @"Data Source =LAPTOP-KKS0SHEJ; 
                                     Database=login; Integrated Security=True;";//连接字符
        public static string sql = "select * from login";//查询语句
        public static SqlConnection conn = new SqlConnection(str);//连接对象
        public static SqlCommand cmd = new SqlCommand(sql, conn);//执行语句对象
        public static SqlDataAdapter sda = new SqlDataAdapter(cmd);//数据适配器
        public static DataSet ds = new DataSet();//数据集
        public static SqlCommandBuilder scb = new SqlCommandBuilder(sda);//有这个才能使用updata更新 

        public Form2()
        {
            InitializeComponent(); 
        }

        private void Form2_Load(object sender, EventArgs e)
        {
            //打开数据库连接
            conn.Open();
            ds.Tables.Clear();
            sda.Fill(ds, "login");//利用fill方法将数据填入数据集
            dataGridView1.DataSource = ds.Tables["login"];
            //设置单元格属性
            //单击单元格或行标题可以选中整行
            this.dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
            conn.Close();

        }

        //删除功能按钮实现,不涉及数据库源数据,只是修改展示数据
        private void btn_Clear_Click(object sender, EventArgs e)
        {
            conn.Open();
            try
            {
                int iCount = dataGridView1.SelectedRows.Count;//获取单元格行数
                if (iCount<1)
                {
                    MessageBox.Show("已删除数据", "删除错误", MessageBoxButtons.OK,
                       MessageBoxIcon.Error);
                    return;
                }
                if (DialogResult.Yes == MessageBox.Show("是否删除选中的数据?", "提示", 
                    MessageBoxButtons.YesNo, MessageBoxIcon.Information))
                {
                    //循环遍历所有行  
                    // <=确保了最后一行也会被修改
                    for (int i = 0; i <= this.dataGridView1.Rows.Count - 1; i++)
                    {
                        //当前行处于选中状态,则将其删除 
                        if (true == this.dataGridView1.Rows[i].Selected)
                        this.dataGridView1.Rows.RemoveAt(i);
                    }
                    //删除任意行数据后,应该刷新dataGridView表格,使索引值从上至下按大小顺序排序
                    for (int i = 0; i <dataGridView1.Rows.Count - 1; i++)
                    {
                        dataGridView1.Rows[i].Cells[0].Value = i + 1;
                    }
                }
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            conn.Close();
        }

        private void btn_Sec_Click(object sender, EventArgs e)//保存按钮
        {
            conn.Open();
            sda.AcceptChangesDuringUpdate = true;//写也可以,不行也可以 
            //利用try catch方法进行尝试
            try
            {
                sda.Update(ds, "login");//利用updata更新数据集,会自动更新到数据库里面
                MessageBox.Show("保存成功!");
            }
            catch
            {
                MessageBox.Show("保存失败!");
            }
            conn.Close();
        }

        private void btn_Rem_Click(object sender, EventArgs e)//刷新按钮
        {
            conn.Open();
            ds.Tables.Clear();
            sda.Fill(ds, "login");
            dataGridView1.DataSource = ds.Tables["login"];
            conn.Close();
        }
    }
}

注意事项:messageBox用作提示测试很好

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值