下面是自己用C#写的一个使用数据库实现订餐管理系统管理
(大神勿喷,初学者以借鉴为主)
一共分为三个类分别是:Program(启动类),Zhuang(封装操作语句类),Zuo(操作类)
数据库表(如下):
1.菜袋表
2.菜品表
注意:菜袋表的dishMegs 和 菜品表的name 为主外键关系
3.管理员表
代码部分(如下):
既然使用了数据库那么using还是要记得导入的呦:
using System.Data.SqlClient;
using System.Data;
Program(启动类):
class Program
{
static void Main(string[] args)
{
Zuo zuo = new Zuo();
zuo.DengLu();
Console.ReadLine();
}
}
Zhuang(封装操作语句类):
class Zhuang
{
private const string CONNSTR = "server=.;database=Demo2;uid=sa;pwd=sa";
private SqlConnection _conn;
public SqlConnection Conn {
get {
if (_conn != null)
{
if (_conn.State == ConnectionState.Broken || _conn.State == ConnectionState.Open)
{
_conn.Close();
}
}
else {
_conn = new SqlConnection(CONNSTR);
}
_conn.Open();
return _conn;
}
}
private SqlCommand _cmd;
public SqlCommand Cmd {
get {
_cmd = new SqlCommand();
_cmd.Connection = Conn;
return _cmd;
}
}
//查询ExecuteReader
public SqlDataReader ExecuteReader(string sql) {
SqlCommand cmd = Cmd;
cmd.CommandText = sql;
SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return reader;
}
//查询ExecuteScalar
public object ExecuteScalar(string sql) {
SqlCommand cmd = Cmd;
cmd.CommandText = sql;
object obj = cmd.ExecuteScalar();
cmd.Connection.Close();
return obj;
}
//增,删,改ExecuteNonQuery
public int ExecuteNonQuery(string sql) {
SqlCommand cmd = Cmd;
cmd.CommandText = sql;
int result = cmd.ExecuteNonQuery();
cmd.Connection.Close();
return result;
}
}
Zuo(操作类):
class Zuo
{
Zhuang zhang = new Zhuang();
//管理员登录
#region 管理员登录
public void DengLu() {
Console.Write("请输入管理员用户名:");
string username = Console.ReadLine();
Console.Write("请输入管理员密码:");
string password = Console.ReadLine();
string sql = "SELECT username,[password] FROM GuanLi";
SqlDataReader reader = zhang.ExecuteReader(sql);
if (reader.HasRows) {
while (reader.Read())
{
if (username.Equals(reader["username"]) && password.Equals(reader["password"])) {
reader.Close();
Console.WriteLine("登录成功!");
CaiDan();
return;
}
}
}
reader.Close();
Console.WriteLine("登录失败!");
return;
}
#endregion
//菜单
#region 菜单
public void CaiDan() {
bool huan = true;
do {
Console.WriteLine("\n************欢迎使用老明宇吃货联盟订单系统************");
Console.WriteLine("1.我要订餐\n2.查看菜袋\n3.签收订单\n4.删除订单\n5.我要点赞\n6.退出系统");
Console.WriteLine("******************************************************");
Console.Write("请选择:");
int xuanZe = int.Parse(Console.ReadLine());
switch (xuanZe)
{
case 1:
Console.WriteLine("-->我要订餐");
DingDan();
continue;
case 2:
Console.WriteLine("-->查看菜袋");
LookCaiDai();
continue;
case 3:
Console.WriteLine("-->签收订单");
QianShou();
continue;
case 4:
Console.WriteLine("-->删除订单");
DeleteDingDan();
continue;
case 5:
Console.WriteLine("-->我要点赞");
IZan();
continue;
case 6:
Console.WriteLine("-->欢迎使用,感谢您的下次光临!");
huan = false;
break;
default:
Console.WriteLine("-->无该选项!");
continue;
}
} while (huan);
}
#endregion
//one:我要订餐
#region 我要订餐
public void DingDan() {
Console.WriteLine("请输入订单人的姓名:");
string names = Console.ReadLine();
Console.WriteLine("序号\t菜名\t单价\t点赞数");
string sql = "SELECT caiID,name,money,Zan FROM CaiDan";
SqlDataReader reader = zhang.ExecuteReader(sql);
if (reader.HasRows) {
while (reader.Read()) {
Console.WriteLine("{0}\t{1}\t{2}\t{3}",reader["caiID"],reader["name"], reader["money"], reader["Zan"]);
}
}
reader.Close();
Console.WriteLine("请输入您要点的菜品编号:");
int bianHao = int.Parse(Console.ReadLine());
SqlDataReader reader1 = zhang.ExecuteReader(sql);
string caipinName = null;//菜品名称
double danJia = 0.0;//菜品单价
while (reader1.Read()) {
if (bianHao == Convert.ToInt32(reader1["caiID"])) {
caipinName = reader1["name"].ToString();
danJia = Convert.ToDouble(reader1["money"]);
break;
}
}
if (caipinName == null) {
Console.WriteLine("对不起,没有该编号!");
return;
}
reader1.Close();
Console.WriteLine("请输入您的需要的份数:");
int fenShu = int.Parse(Console.ReadLine());
Console.WriteLine("请输入送餐时间(送餐时间是10~20点间整点送餐):");
int shiJian = int.Parse(Console.ReadLine());
if (shiJian<10 || shiJian>20) {
Console.WriteLine("对不起,因为任性我们只在10~20整点送餐!");
return;
}
Console.WriteLine("请输入送货地址:");
string diZhi = Console.ReadLine(); //状态中0表示以预定,1表示已完成
double zje = 0.0;//总金额
const int yunFei = 5;//运费
if (danJia * fenShu < 50)
{
zje = danJia * fenShu + yunFei;
}
else {
zje = danJia * fenShu;
}
string sql1 = "INSERT INTO UserCaiDan VALUES ('"+names+"','"+ caipinName + "',"+ fenShu + ","+ shiJian + ",'"+ diZhi + "','0','"+ zje + "')";
int result = zhang.ExecuteNonQuery(sql1);
if (result == 1)
{
Console.WriteLine("订单成功!");
}
else {
Console.WriteLine("对不起,订单失败!");
}
FanHui();//返回
}
#endregion
//two:查看菜袋
#region 查看菜袋
public void LookCaiDai() {
Console.WriteLine("序号\t订单人\t餐品信息\t送餐日期\t送餐地址\t总金额\t订单状态");
string sql = "SELECT userID,name,dishMegs,fenShu,times,address,states,sumPrices FROM UserCaiDan";
SqlDataReader reader = zhang.ExecuteReader(sql);
if (reader.HasRows) {
while (reader.Read()) {
string tai = Convert.ToInt32(reader["states"])==0 ? "已预定":"已完成";
Console.WriteLine("{0}\t{1}\t{2}\t{3}\t\t{4}\t\t{5}\t{6}",reader["userID"], reader["name"], reader["dishMegs"].ToString()+reader["fenShu"]+"份", reader["times"], reader["address"], reader["sumPrices"], tai);
}
}
reader.Close();
FanHui();//返回
}
#endregion
//three:签收订单
#region 签收订单
public void QianShou() {
Console.WriteLine("请输入要签收的订单序号:");
int xuHao = int.Parse(Console.ReadLine());
string sql = "UPDATE UserCaiDan SET states = 1 WHERE userID = "+ xuHao + "";
int gai = zhang.ExecuteNonQuery(sql);
if (gai == 1)
{
Console.WriteLine("签收成功!");
}
else {
Console.WriteLine("对不起,签收失败!");
}
FanHui();//返回
}
#endregion
//four:删除订单
#region 删除订单
public void DeleteDingDan() {
Console.WriteLine("请输入要删除的订单序号:");
int xuHao = int.Parse(Console.ReadLine());
string sql1 = "SELECT userID FROM UserCaiDan";
SqlDataReader reader = zhang.ExecuteReader(sql1);
bool qianShou = true;//订单是否签收
while (reader.Read()) {
if (xuHao == Convert.ToInt32(reader["userID"])) {
qianShou = false;
break;
}
}
reader.Close();
if (qianShou)
{
Console.WriteLine("对不起,没有找到该序号!");
}
else {
string sql = "DELETE FROM UserCaiDan WHERE states = 1";
int gai = zhang.ExecuteNonQuery(sql);
if (gai == 1)
{
Console.WriteLine("删除成功!");
}
else
{
Console.WriteLine("对不起,您选择的订单未签收,不可删除!");
}
}
FanHui();//返回
}
#endregion
//five:我要点赞
#region 我要点赞
public void IZan() {
Console.WriteLine("序号\t菜名\t\t单价\t点赞数");
string sql = "SELECT caiID,name,money,Zan FROM CaiDan";
SqlDataReader reader = zhang.ExecuteReader(sql);
if (reader.HasRows)
{
while (reader.Read())
{
Console.WriteLine("{0}\t{1}\t{2}\t{3}", reader["caiID"], reader["name"], reader["money"], reader["Zan"]);
}
}
reader.Close();
Console.WriteLine("请输入您要点赞的菜品序号:");
int bianHao = int.Parse(Console.ReadLine());
SqlDataReader reader1 = zhang.ExecuteReader(sql);
bool cunZai = true;
while (reader1.Read())
{
if (bianHao == Convert.ToInt32(reader1["caiID"]))
{
cunZai = false;
break;
}
}
if (cunZai)
{
Console.WriteLine("对不起,没有该编号!");
return;
}
reader1.Close();
string sql2 = "UPDATE CaiDan SET Zan = Zan+1 WHERE caiID = "+ bianHao + "";
int gai = zhang.ExecuteNonQuery(sql2);
if (gai == 1)
{
Console.WriteLine("点赞成功!");
}
else {
Console.WriteLine("对不起,点赞失败!");
}
FanHui();//返回
}
#endregion
//输入0返回方法
#region 输入0返回方法
public void FanHui() {
int shuRu = 0;
do {
Console.Write("输入0返回:");
shuRu = int.Parse(Console.ReadLine());
} while (shuRu != 0);
CaiDan();
}
#endregion
}
封装类有宝宝们还不懂的请打开:
https://blog.csdn.net/qq_44860582/article/details/97615515