用C#与数据库实现吃货联盟订餐系统

下面是自己用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

 

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值