using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace Demo_11
{
public partial class FrmLogin : Form
{
SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=QQDB;Integrated Security=True");
public FrmLogin()
{
InitializeComponent();
}
private void btnOK_Click(object sender, EventArgs e)
{
try
{
conn.Open();
//由界面上的文本框的内容拼出要执行的SQL语句
//第一种拼法:
string sql = "select count(*) from QQinfo where QQID='" + this.txtQQID.Text + "' and QQPWD='" + this.txtPWD.Text + "'";
//创建一个执行指令的对象
SqlCommand cmd = new SqlCommand(sql, conn);
//让指令执行,返回一个结果
int num = int.Parse(cmd.ExecuteScalar().ToString());
if (num >= 1)
{
//MessageBox.Show("用户名密码对");
FrmMain frm = new FrmMain(this);
frm.Show();
}
else
{
MessageBox.Show("用户名密码错");
this.txtPWD.Text = "";
this.txtQQID.Text = "";
}
cmd.Dispose();
}
catch (SqlException ex)
{
MessageBox.Show(ex.Message);
}
finally
{
//无论是否出错,最终都要进行数据库的关闭
conn.Close();
}
}
private void button1_Click(object sender, EventArgs e)
{
//进行可能会出错的代码的监视
try
{
//创建一个应用程序到数据库的连接对象
SqlConnection conn = new SqlConnection();
//给这个连接对象一个连接字符串
//连接字符串起到的作用就是告诉连接对象,现在要连接的数据库在哪儿(可以是地球上任何一个地方连接了互联网的数据库)?数据库的名字叫什么?登录到数据库的用户名和密码是什么?
//连接字符串如果记不住,可以生成,但是这个办法只能用于上机操作
string connString = "Data Source=.Initial Catalog=QQDB;Integrated Security=True";
//integrated security是集成安全验证,也就是说,只能登录到系统(具有系统权限)就可以登录到数据库
conn.ConnectionString = connString;
//下面可以打开数据库,也就是在应用程序端打开数据库
conn.Open();
//打开成功的时候,出个“OK”
MessageBox.Show("OK");
//打开成功后,就可以利用conn对数据库进行操作
//所有操作完成之后,记得关闭连接
conn.Close();
}
catch (Exception ex)
{
//对出现的错误进行处理
MessageBox.Show(ex.Message);
}
finally
{
//无论是否出错,最终都会执行的部分
}
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace Demo_11
{
public partial class FrmMain : Form
{
SqlConnection conn = new SqlConnection("server=.;database=QQDB;integrated security=true");
FrmLogin frmLogin = null;
public FrmMain()
{
InitializeComponent();
}
public FrmMain(FrmLogin frm)
{
InitializeComponent();
frmLogin = frm;
}
private void btnOK_Click(object sender, EventArgs e)
{
if (txtPWD1.Text == "" || txtPWD2.Text == "" || txtQQID.Text == "")
{
MessageBox.Show("请填写完整");
}
else
{
if (txtPWD1.Text != txtPWD2.Text)
{
MessageBox.Show("两次密码输入不一致!!请更正!");
}
else
{
conn.Open();
//到这儿可以注册这个用户了
string sql = string.Format("insert into QQInfo values('{0}','{1}')",txtQQID.Text,txtPWD1.Text);
SqlCommand cmd = new SqlCommand(sql, conn);
int row = cmd.ExecuteNonQuery();
if (row >= 1)
{
MessageBox.Show("添加成功");
txtPWD1.Text = "";
txtPWD2.Text = "";
txtQQID.Text = "";
}
else
{
MessageBox.Show("出错");
}
conn.Close();
}
}
}
private void FrmMain_FormClosed(object sender, FormClosedEventArgs e)
{
frmLogin.Close();
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(dateTimePicker1.Value.ToShortDateString());
}
private void FrmMain_Load(object sender, EventArgs e)
{
//窗体加载的时候会自动调用的事件
for (int i = 1950; i <= 2050; i++)
{
cmbYer.Items.Add(i.ToString());
}
for (int i = 1; i <= 12; i++)
{
cmbMon.Items.Add(i.ToString());
}
for (int i = 1; i <= 31; i++)
{
cmbDay.Items.Add(i.ToString());
}
}
}
}
数据库表
use master
go
create database QQDB
go
use QQDB
go
create table QQInfo
(
QQID nvarchar(20) not null primary key,
QQPWD nvarchar(50) not null
)
go
insert into QQInfo values('123456','abcdef')
insert into QQInfo values('111222','abc')
go
select * from QQInfo
go
--怎样才能知道任意的一个用户名和密码是否是正确的用户名和密码?
--可以查询该用户名和密码的数据有几条?如果>=1条,那就是正确的,如果是0条,那就是错误的
--如:用户名1234,密码是1234
select count(*) from QQinfo where QQID='1234' and QQPWD='1234'
--查出的数据是0条,也就是说,用户名和密码中有一个出错,到底是用户名还是密码错,没必要告诉用户
--再如:用户名是111222,密码是abc
select count(*) from QQInfo where QQID='111222' and QQPWD='abc'
--查出的数据是1条,也就是说,有这个用户名和密码存在,有,就说明用户名和密码对了