实验目的:掌握数据库编程技术
实验要求:能正确连接数据库,能对数据库中信息进行查询、插入、删除、修改
在数据库中创建三张表。一张表用于保存女鞋信息,包括女鞋型号、出产地、价格、库存量。另一张表保存客户订购信息,包括订购女鞋型号、客户名、客户电话、订购数量,还有一张用户信息表。
设计一个GUI界面用于女鞋销售。此界面由购鞋客户使用。要求:以图片形式向客户显示当前出售的所有女鞋。客户点击某张图片后,向客户显示该女鞋的出产地、价格、库存量。客户点击购买按钮后,出现对话框请用户输入客户名、联络电话、订购量。当客户订购量超过库存量时,弹出消息框向客户显示货物不足信息。根据客户订购信息修改数据库中该女鞋的库存量信息。当库存量为0时,从女鞋表中删除与该女鞋对应的记录。将该客户的订购信息保存到数据库中。
实验源码如下:
(1)登录界面(Form1.cs)
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;
using MySql.Data.MySqlClient;
namespace ShoesSalesSystem
{
public partial class LoginForm : Form
{
MySqlConnection myconn = null;
MySqlCommand mycom = null;
MySqlDataReader myrec = null;
public LoginForm()
{
myconn = new MySqlConnection("Host = localhost;Database = shoes_sales_sys;Username = userzjq;Password = userzjq");
InitializeComponent();
}
private void loginButton_Click(object sender, EventArgs e)
{
DialogResult MsgBoxResult;
myconn.Open();
if (myconn.State.ToString() == "Open")
{
// MsgBoxResult = MessageBox.Show("连接成功", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2);
}
UserInfo userInfe = new UserInfo(phoneTextBox.Text,passwordTextBox.Text);
UserBaseHelper userBaseHelper;
userBaseHelper=userInfe.judgeLogin(myconn);
if (userBaseHelper.success)
{
MsgBoxResult = MessageBox.Show(userBaseHelper.message, "登录提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2);
ShowShoesInfoForm salesForm = new ShowShoesInfoForm(myconn, mycom, myrec, userBaseHelper.getUserName(), userBaseHelper.getPhoneNum());
this.SetVisibleCore(false);
salesForm.ShowDialog();
this.SetVisibleCore(true);
}
else {
MsgBoxResult = MessageBox.Show(userBaseHelper.message, "登录提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2);
}
myconn.Close();
}
}
public class UserInfo {
private String userPhone;
private String userPassword;
MySqlConnection myconnection = null;
MySqlCommand mycommand = null;
MySqlDataReader myreader = null;
public UserInfo(String userPhone, String userPassword) {
this.userPhone = userPhone;
this.userPassword = userPassword;
}
public UserBaseHelper judgeLogin(MySqlConnection myconnection)
{
UserBaseHelper baseHelper = new UserBaseHelper();
String sql = "select * from user_info where user_phone=?userPhone";
mycommand = new MySqlCommand(sql, myconnection);
mycommand.Parameters.AddWithValue("?userPhone", this.userPhone);
myreader = mycommand.ExecuteReader();
while (myreader.Read())
{
Console.WriteLine("密码是:" + myreader["login_password"]);
if (this.userPassword.Equals(myreader["login_password"]))
{
baseHelper.setPhoneNum((String)myreader["user_phone"]);
baseHelper.setUserName((String)myreader["user_name"]);
baseHelper.success = true;
baseHelper.message = "登录成功";