6设计一基于window窗体的登录界面,窗体居中显示。要求用户输入用户名和密码,若登录失败则显示用户名或密码错误,若登录成功则显示第二个窗体。第二个窗体中能显示数据库内的数据,数据不能添加,能实现数据的编辑和保存。
- 第一步:登录界面设计:
- 第二步:数据界面设计:
一个文本框,四个按钮,一个数据单元格
3.第三步:数据界面代码设计:
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 Form2()
{
InitializeComponent();
}
//创建对象
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更新
private void Form2_Load(object sender, EventArgs e)//
{
conn.Open();
ds.Tables.Clear();//初始化数据集
sda.Fill(ds,"login");//利用fill方法将login这个表填充到数据集里面
dataGridView1.DataSource = ds.Tables["login"];
//设置单元格属性
//单击单元格或行标题可以选中整行
this.dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
conn.Close();
}
private void button2_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 button1_Click(object sender, EventArgs e)//刷新按钮
{
conn.Open();
ds.Tables.Clear();
sda.Fill(ds, "login");
dataGridView1.DataSource = ds.Tables["login"];
conn.Close();
}
private void button3_Click(object sender, EventArgs e)//查询按钮
{
conn.Open();
string sec = textBox1.Text;//定义变量接收查询关键字
DataTable dtbl = (DataTable)dataGridView1.DataSource;//将目前的视图上的数据传给datatable
DataView dv = dtbl.DefaultView;//将表的视图传给视图dv
dv.RowFilter = " id like '%" + sec + "%' ";
conn.Close();
}
private void btn_Clear_Click(object sender, EventArgs e)
{
//try catch方法保证安全性
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);
}
}
}
}
4.总结:
利用updata更新数据库,安全系数高。