11-6号制作了一个在线查询席位的小程序
声明:本人小白一个纯分享,写出来巩固思路,不足之处,大佬多指教,谢谢!
用的是webapi使用
大致的思路是先webapi写一个查询数据库的程序,
再sqlite导入提前准备的表格,与程序进行交互无问题后,
进行网页编写(注意移动端界面部署),把做好的界面放到webapi下,确保本地无误(无跨域问题)
然后再云服务上面打相关的环境和打开对应接口,用的windowserver服务,打开iss挂载应用
然后把链接生成二维码,给宾客扫描查询座位。

一. web api代码解析
图文分享如下:
1.首先在Controllers文件夹下面写一个查询数据库的操作
用的get命令去获取

[ApiController]
    [Route("Seat")]
    public class SeatController : Controller {
        [HttpGet("{name}")]
        public ActionResult<string> Read(string name) {
            var sqlString = SqliteGo(name);
            if (sqlString.Contains(",")) {
                return Ok(sqlString);
            } 
            else {
                return BadRequest(sqlString);
            }
        }

(1)注意 [Route(“Seat”)] 路由名称为Seat,会导致调用此方法后面加/Seat
(2) [HttpGet("{name}")] 这个为路由get获取,程序会读name这个值
(3)SqliteGo为定义方法下面会详细介绍,此处为返回一个json的值 name和Seat
此处小结:当程序获取到name的时候会去调用SqliteGo的函数,去数据库查询并返回一个json,判断是否符合,符合返回 200 ok的json,不符合返回 400 bad的字符串。

2.SqliteGo的函数
private string SqliteGo(string name) {
            string dbPath = AppContext.BaseDirectory + "11-6Seat.db";
            CSQLiteHelper cSQLiteHelper = new CSQLiteHelper(dbPath);
            string sqlString=cSQLiteHelper.SelectStars(name)[0];
            if (sqlString.Contains(",")) {
                var _sqlString = string.Format("{{\"seat\":\"{0}\",\"name\":\"{1}\"}}", sqlString.Split(',')[0], sqlString.Split(',')[1]);
                sqlString = _sqlString;
            }
            return sqlString;
        }
    }

(1)CSQLiteHelper此处为自定义类,后面会详细介绍
(2)if这边进行判断,进行json打包 ps:此处json手动生成"{{“seat”:"{0}",“name”:"{1}"}}"

3.CSQLiteHelper
class CSQLiteHelper {
        private string _dbName = "";
        private string _SQLiteConnString = null; //连接字符串

        public CSQLiteHelper(string dbPath) {
            this._dbName = dbPath;
            this._SQLiteConnString = "Data Source=" + dbPath;
        }//获取db文件的路径
        public string[] SelectStars(string name) {
            var cmd = new SQLiteCommand();//获取命令的函数
            SQLiteConnection sqliteConn = new SQLiteConnection(_SQLiteConnString);//连接数据库
            var strs = new List<string>();//实际案例用不到数组哈
            try {
                sqliteConn.Open();//打开数据库
                string commandStr = string.Format("SELECT * FROM 'Seat' WHERE name IN('{0}')", name);//选择Seat这个表单,再用字符串格式填入name值
                cmd.CommandText = commandStr;
                cmd.Connection = sqliteConn;
                var reader = cmd.ExecuteReader();//读出符合条件的字符串
                if (reader.Read()) {
                        string str = null;//循环中字符串清null
                        if (reader.HasRows) {
                            for (int i = 0; i < reader.FieldCount; i++) {
                                str += (reader[i].ToString()) + ',';//把数字变成字符串|进行区分
                            }

                        }
                        strs.Add(str);
                    }
                else {
                    strs.Add("未查到数据!请检查姓名或者去签到台确认!");
                }
                return strs.ToArray();此处不用数组也行,查询的指向的是单值
            }
            catch (Exception ex) {
                throw new Exception(ex.Message);
            }
            finally {
                cmd.Dispose();// 释放command
                sqliteConn.Close();//结合命令关闭才能关闭数据库
                sqliteConn.Dispose();//先关闭数据连接,再释放
            }
        }
    }

(1)此处注意数据库 我写的格式是

android会议排座功能实现 会议排座位小程序_sqlite


(2)建议先在库里调式了命令,再把相关命令写入command里

(3)此处调用了sqlite,在nuget里

android会议排座功能实现 会议排座位小程序_sqlite_02

总结以上就是.net web APi后台程序所使用的,程序启用如下

注意前端html 放到 wwwroot文件下面,到时候iss挂载,直接ip:端口/index.html 就可以访问

app.UseFileServer();加入Startup.cs下面

android会议排座功能实现 会议排座位小程序_sqlite_03

二.前端网页编写

html,css,js篇
本人小白,此处不多介绍了,注意移动端app的使用界面即可
用的过时的jquery写的,感兴趣的可去下面链接的github获取

三.云服务器环境搭建

用的是华为云1个月的试用版,马上到期了。。下面简单介绍一下云使用

注意左上角区域,我这选择的是上海一,选错了,弹性公网ip都没

android会议排座功能实现 会议排座位小程序_android会议排座功能实现_04


这里需要配置的是-访问控制-安全组-选择网卡对应的安全组-配置规则,进行对应端口映射,我添加的规则如下:

android会议排座功能实现 会议排座位小程序_小程序_05


打开弹性网卡-更多-更改安全组

android会议排座功能实现 会议排座位小程序_.net_06


android会议排座功能实现 会议排座位小程序_.net_07


以上就是云服务,我做的操作。

然后通过弹性网卡ip,测试映射端口是否都通。

四.云服务器的环境搭建(window-server)

1.搭建iss 没啥好记录的,百度上都有。报错啥问题百度都能解决


物理路径使用如下:

android会议排座功能实现 会议排座位小程序_android会议排座功能实现_08


2. 几个.netCore环境包要装好

.https://dotnet.microsoft.com/download/dotnet/5.0 3.注意window防火墙和文件权限问题

五.二维码生成

把http链接填入 以下网站生成
https://www.wwei.cn

六 github 分享

https://github.com/HaoXuLC/SeatSearch