汇报总结
小组成员:何虎平、程腾、牛旭辉、秦谊澄、陈志成
系统主界面
privatevoidbutton1_Click(objectsender, EventArgs e
{
string connStr
= "Server=.;integrated
security=SSPI;Initial catalog=_2017270415 ";
//
string connStr =
ConfigurationManager.connectionString["_2017270415"].connectionString;
SqlConnection sqlConn =newSqlConnection(connStr);
try
{
// 连接数据库
sqlConn.Open();
MessageBox.Show("连接成功");
// 构造命令发送给数据库
String sqlStr ="select
* from 雇佣 where ID=@id and PASSWORD=@pwd";
SqlCommand cmd =newSqlCommand(sqlStr,sqlConn);
// 注意是用用户ID登录,而不是用户名,用户名可能会重复
cmd.Parameters.Add(newSqlParameter("@id", this.textBox2.Text.Trim()));
cmd.Parameters.Add(newSqlParameter("@pwd", this.textBox1.Text.Trim()));
SqlDataReader dr =cmd.ExecuteReader();
// 如果从数据库中查询到记录,则表示可以登录
if(dr.HasRows)
{
dr.Read();
string Id =
dr["id"].ToString();
string name =
dr["name"].ToString();
stringpassword = dr["password"].ToString();
string Phone =
dr["phone"].ToString();
string sex =
dr["sex"].ToString();
//
this.textBox1.Text += Id + "," + name + "," + password +
"," + Phone + "," + sex +;
string yonghu
= this.comboBox1.Text;
if(yonghu.Equals("收银员"))
{
// 显示收银员主界面
GLY formUser =newGLY();
formUser.Show();
// 隐藏登录界面
this.Hide();
}
if(yonghu.Equals("库管员"))
{
// 显示库管员主界面
KGY formAdmin =newKGY();
formAdmin.Show();
// 隐藏登录界面
this.Hide();
}
}
else
{
MessageBox.Show("用户名或密码错误", "提示", MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}
catch(Exception exp)
{
MessageBox.Show("访问数据库错误:"+ exp.ToString());
}
finally
{
sqlConn.Close();
}
#region注释
/*
string yonghu =this.comboBox1.Text;
string name = this.textBox1.Text;
string password =this.textBox1.Text;
if (yonghu.Equals(""))
{
MessageBox.Show("请选择类别输入账号密码", "提示",MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
if (name.Equals("")&& password.Equals("") && yonghu.Equals("用户"))
{
MessageBox.Show("账号或密码不能为空", "提示", MessageBoxButtons.OK,MessageBoxIcon.Error);
return;
}
if (name.Equals("admin")&& password.Equals("admin") && yonghu.Equals("用户"))
{
MessageBox.Show("登录成功");
}
else if ((name.Equals("admin")&& password.Equals("admin") && yonghu.Equals("管理员")))
{
GLY newrf = new GLY();
newrf.Owner= this;
newrf.Show();
this.Hide();
}
else if((name.Equals("admin") && password.Equals("admin")&& yonghu.Equals("库管员")))
{
KGY newrf = new KGY();
newrf.Owner= this;
newrf.Show();
this.Hide();
}
else
{
MessageBox.Show("帐号或者密码错误", "提示",MessageBoxButtons.OK, MessageBoxIcon.Error);
}*/
#endregion
}
主要代码
E-R图
收银员表工号 Int 否主键姓名 Varchar(50)是密码 Varchar(50)是电话 Varchar(15)是库管员表列名数据类型允许为空备注工号 Int 否主键姓名 Varchar(50)是密码 Varchar(50)是电话 Varchar(15)是商品表列名数据类型允许为空备注商品号 Int 否主键价格 Varchar(50)是名称 Varchar(50)是
供应商表列名数据类型允许为空备注代码 Int 否主键名称 Varchar(50)是地点 Varchar(50)是联系人 Varchar(50)是电话 Varchar(15)是
关键代码
privatevoidtool_ZX_Click(objectsender, EventArgs e)
{
if(MessageBox.Show("确认注销?", "提示", MessageBoxButtons.OKCancel,
MessageBoxIcon.Question) ==DialogResult.OK)
Application.Restart();
}
privatevoidtoolStripStatusLabel4_Click(objectsender,EventArgs e)
{
this.tool_TIME.Text
= DateTime.Now.ToString("yyyy-MM-dd HH;mm;ss");
this.statusStrip1.Refresh();
}
privatevoidGLY_Load(objectsender, EventArgs e)
{
this.tool_TIME.Text=
DateTime.Now.ToString("yyyy-MM-dd
HH;MM;ss");
this.tool_USER.Text
= this.userName;
}
关键代码
privatevoidbutton1_Click(objectsender, EventArgs e)
{
stringuserName = this.textBox1.Text.Trim();
stringyonghu= textBox1.Text;
stringmima =textBox2.Text;
stringmima1 =textBox3.Text;
string conStr
= "Server=.;integrated
security=SSPI;Initial catalog=_2017270415 ";
SqlConnection sqlConn =newSqlConnection(conStr);
try
{
sqlConn.Open();
string sqlStr
= "update收银员 set PASSWORD=@pwd where ID=@id";
SqlCommand cmd =newSqlCommand(sqlStr,sqlConn);
cmd.Parameters.Add(newSqlParameter("@PWD", mima));
cmd.Parameters.Add(newSqlParameter("@id",yonghu));
intres =cmd.ExecuteNonQuery();
if(res !=0)
{
MessageBox.Show("修改成功");
this.Close();
}
elseif(res ==0)
{
MessageBox.Show("修改失败");
}
//SqlConnection sqlConn= new SqlConnection("selectcount(*)form收银员 where id='" + textBox1.Text.Trim()+"'",sqlConn);
if(mima.Length<3)
{
MessageBox.Show("密码长度不能小于3");
}
elseif(mima!= mima1)
{
MessageBox.Show("密码输入不一致,请重新输入");
}
elseif(mima== mima1)
{
}
}
catch(Exception exp)
{
MessageBox.Show("访问数据库错误:"+ exp.ToString());
}
finally
{
sqlConn.Close();
}
}
privatevoidbutton1_Click(objectsender, EventArgs e)
{
/*stringid = this.textBox1.Text.Trim();
string name =this.textBox2.Text.Trim();
float jg =float.Parse(this.textBox3.Text.Trim());
string gg =this.textBox4.Text.Trim();
string bj =this.textBox5.Text.Trim();*/
string connStr
= "Server=.;integrated
security=SSPI;Initial catalog=_2017270415 ";
//string
connStr =
ConfigurationManager.connectionString["_2017270415"].connectionString;
SqlConnection sqlConn =newSqlConnection(connStr);
try
{
// 连接数据库
sqlConn.Open();
MessageBox.Show("数据库连接成功!");
{
// 在数据库-数据表中添加数据
String strsql ="Insert
into [商品](id,name,jige,guige,beizhu) values('" +
textBox1.Text + "','" + textBox2.Text + "','" +
textBox3.Text + "','" + textBox4.Text + "','" +
textBox5.Text + "')";
SqlCommand command =newSqlCommand(strsql,sqlConn);
inti =command.ExecuteNonQuery();
if(i ==1)
{
MessageBox.Show("管理员数据添加成功!");
textBox1.Text ="";//文本框置空
textBox2.Text ="";
textBox3.Text ="";//文本框置空
textBox4.Text ="";
textBox5.Text ="";//文本框置空
}
}
}
catch(Exception exp)
{
MessageBox.Show("访问数据库出错"+ exp.Message);
}
finally
{
sqlConn.Close();
}
}
}
}
privatevoidbutton1_Click(objectsender, EventArgs e)
{
string connStr
= "Server=.;integrated
security=SSPI;Initial catalog=_2017270415 ";
//
string connStr = ConfigurationManager.connectionString["_2017270415"].connectionString;
SqlConnection sqlConn =newSqlConnection(connStr);
try
{
sqlConn.Open();
string sqlstr
= "select
* from 商品 where 1=1";
if (this.textBox1.Text.Trim().Equals(""))
{
sqlstr +="and
ID='" + this.textBox1.Text.Trim() + "'";
}
if (this.textBox2.Text.Trim().Equals(""))
{
sqlstr +="and
NAME='" + this.textBox2.Text.Trim() + "'";
}
//将查询过程绑定到dataadapter
SqlCommand cmd =newSqlCommand(sqlstr,sqlConn);
SqlDataAdapter adp =newSqlDataAdapter();
adp.SelectCommand= cmd;
//将dataset和daraadapter绑定
DataSet ds =newDataSet();
//自定义一个表(商品)来表示数据库中的商品表
adp.Fill(ds,"商品");
this.dataGridView1.DataSource
= ds.Tables["商品"];
}
catch(Exception exp)
{
MessageBox.Show("访问数据库错误:"+ exp.ToString());
}
finally
{
sqlConn.Close();
}
}
privatevoiddataGridView1_CellContentClick(objectsender,DataGridViewCellEventArgs e)
{
if(e.RowIndex != -1 && e.ColumnIndex == 0)
{
stringobjectId = this.dataGridView1["id", e.RowIndex].Value.ToString();
MessageBox.Show(objectId);
}
elseif(e.RowIndex!= -1 &&e.ColumnIndex ==1)
{
stringobjectId =this.dataGridView1["id",e.RowIndex].Value.ToString();
MessageBox.Show(objectId);
}
string connStr
= "Server=.;integrated
security=SSPI;Initial catalog=_2017270415 ";
//
string connStr =
ConfigurationManager.connectionString["_2017270415"].connectionString;
SqlConnection sqlConn =newSqlConnection(connStr);
try
{
sqlConn.Open();
string sqlStr
= "delete
from 商品 where ID=@id";
SqlCommand cmd =newSqlCommand(sqlStr,sqlConn);
cmd.Parameters.Add(newSqlParameter("@id",textBox1));
intres =cmd.ExecuteNonQuery();
if(res !=0)
{
MessageBox.Show("修改成功");
}
else
{
MessageBox.Show("修改失败");
}
}
catch(Exception exp)
{
MessageBox.Show("访问数据库错误:"+ exp.ToString());
}
finally
{
sqlConn.Close();
}
}
}
}
TextBox和Button控件
共有属性:
Name窗体或控件名称一个项目中各个窗体、一个窗体上各个控件的名称不能相同)
Text显示的文本
Font显示文本的字体、大小
BackColor背景颜色
BackgroundImage背景图片
Enabled是否可以对用户交互做出响应
Visible是否可见
特有属性:
MaxLength用户可在文本框中输入的最大字符数
MultiLine文本框中的文本是否可以分多行显示
PasswordChar文本框中输入密码后显示的字符
ReadOnly文本框中的文本是否为只读
ScrollBars文本框控件中显示的滚动条
PictureBox控件:
Image图片框中显示的图片
SizeMode控制图片框显示图片的位置、大小
BackgroundImage背景图片
BackgroundImageLayout背景图像布局
ComboBox(组合框),ListBox(列表框),都是提供一列选项,供用户选择的控件
ComboBox:
DropDownStyle控制列表的样式
Items组合框的选项
ListBox
ScrollAlwaysVisible是否显示滚动条
Items列表框的选项
SelectionMode列表框的选择方式
MessageBoxButtons
AbortRetryIgnore提供“中止”、“重试”和“忽略”三个按钮
OK提供“确定”按钮
OKCancel提供“确定”和“取消”两个按钮
RetryCancel提供“重试”和“取消”两个按钮
YesNo提供“是”和“否”两个按钮
YesNoCancel提供“是”、“否”和“取消”三个按钮
Timer控件,计时器,用于需要按一定时间间隔周期性执行某事件的场合,是一个非可视化的控件。
属性
Enabled设置Timer是否启用,值为True/False
Interval设置定时器两次Tick事件发生的时间间隔,单位:毫秒
事件 Tick 每个Interval时间后触发一次该事件
方法
Start()启动定时器。调用格式:Timer控件名.Start();
Stop()停止定时器。调用格式:Timer控件名.Stop();
SqlConnection类对象的常用属性和方法
属性
ConnectionString用于连接数据库的连接字符串
ConnectionTimeout连接等待的时间
方法
Open()使用ConnectionString属性所指定的设置打开数据库连接
Close()关闭与数据库的连接
SqlCommand类对象的常用属性和方法
属性
Connection Command对象使用的数据库连接
CommandText执行的SQL语句
CommandTimeout终止执行命令生成错误之前的等待时间,初始值30
方法
ExecuteNonQuery()执行不返回行的语句,如UPDATE、DELETE、INSERT等,返回值:执行该命令受影响的行数
ExecuteReader()执行查询命令,返回值:DataReader对象,其内容为查询命令执行的查询结果
ExecuteScalar()返回单个值,如执行COUNT(*)
SqlDataReader类对象的常用属性和方法
方法 Read() 读取存储在客户端缓存区的查询结果
SqlCommand
属性
Connection Command对象使用的数据库连接
CommandText执行的SQL语句
CommandTimeout终止执行命令生成错误之前的等待时间,初始值30
方法
ExecuteNonQuery()执行不返回行的语句,如UPDATE、DELETE、INSERT等,返回值:执行该命令受影响的行数
ExecuteReader()执行查询命令,返回值:DataReader对象,其内容为查询命令执行的查询结果
ExecuteScalar()返回单个值,如执行COUNT(*)
SqlConnection类对象的常用属性和方法
属性
ConnectionString用于连接数据库的连接字符串
ConnectionTimeout连接等待的时间
方法
Open()使用ConnectionString属性所指定的设置打开数据库连接
Close()关闭与数据库的连接
SqlCommand类对象的常用属性和方法
属性
Connection Command对象使用的数据库连接
CommandText执行的SQL语句
CommandTimeout终止执行命令生成错误之前的等待时间,初始值30
方法
ExecuteNonQuery()执行不返回行的语句,如UPDATE、DELETE、INSERT等,返回值:执行该命令受影响的行数
ExecuteReader()执行查询命令,返回值:DataReader对象,其内容为查询命令执行的查询结果
ExecuteScalar()返回单个值,如执行COUNT(*)
SplitContainer用于界面设计,它提供一种将窗口拆分成两个面板的方式,可以适配各种屏幕分辨率。
DataGridview控件常常搭配SplitContainer使用
SplitContainer控件常用属性
属性
Dock定义要绑定到容器的控件边框
Panel1左面板或上面板
Panel2右面板或下面板
Orientation水平分布还是垂直分布
IsSplitterFixed确定是否可以使用键盘或鼠标来移动拆分器
FixedPanel指定哪个面板大小保持不变
DataGridview控件常用属性
属性
AllowUserToAddRows是否向用户添加行的选项
AllowUserToDeleteRows是否允许用户从DataGridView中删除行
MultiSelect是否可以多行选择
Columns列的集合
DataSource DataGridView的数据源
Readonly是否可以编辑单元格
DataGridview控件常用事件方法
事件
CellClick单击单元格的任意部分时发生
CellContentClick单击单元格的内容时发生
Click单击DataGridView时发生
网友评论