簡單的後臺數據和前臺數據交互.net

最近忙着作POS項目,心血來來潮寫了點小項目。mysql

更具要求是隨機顯示數據而且產生的數據是能夠控制的。前臺交互顯示可以倒敘,切每次只顯示一條,頁面不能超過20條超過的部分作刪除。ajax

我先展現一下前臺的代碼,比較簡單適合初學者。sql

由於時間問題,這裏採用的是Dbfirst數據庫

由於不能讓加載頁面的時候出現空數據因此在加載的時候會初始化數據到頁面上json

而後是ajax調用的json數據dom

頁面的ajax學習

前臺大概就是這樣測試

至於後臺用的是winformspa

我直接貼出初始化數據庫的代碼3d

using PCDD.Service;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace PCDD
{
    static class Program
    {
        /// <summary>
        /// 應用程序的主入口點。
        /// </summary>
        [STAThread]
        static void Main()
        {
            string sql = string.Empty;
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            sql = "create database if not exists pcdd";
            MySqlHelper.exc(sql);
            string path = AppDomain.CurrentDomain.BaseDirectory + @"Script\";
            sql = "select count(1) from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA='pcdd'";
            var obj = MySqlHelper.ExNone(sql);
            #region 判斷數據是否存在 不存在初始化
            if (obj.ToString().Equals("0"))
            {
                var i = MySqlHelper.InitData(path);
                Login lo = new Login();
                lo.ShowDialog();
                if (lo.DialogResult == DialogResult.OK)
                {
                    Application.Run(new CRM());
                }
                else
                {
                    return;
                }
            }
            else
            {
                Login lo = new Login();
                lo.ShowDialog();
                if (lo.DialogResult == DialogResult.OK)
                {
                    Application.Run(new CRM());
                }
                else
                {
                    return;
                }
            }
            #endregion
        }
    }
}

MySqlhelper類

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MySql.Data.MySqlClient;
using System.Configuration;
using System.Data;
using System.IO;

namespace PCDD.Service
{
    public class MySqlHelper
    {
        #region field
        private static readonly string constr = ConfigurationManager.ConnectionStrings["mysql"].ToString();
        private static readonly string cstr = ConfigurationManager.ConnectionStrings["mysql1"].ToString();
        private static MySqlConnection con = new MySqlConnection(constr);
        private static MySqlCommand cmd = new MySqlCommand();
        #endregion

        #region PCDD
        /// <summary>
        /// 查詢Datatable
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public static DataTable Query(string sql)
        {
            Open();
            State(sql);
            DataTable dt = new DataTable();
            MySqlDataAdapter da = new MySqlDataAdapter(cmd);
            da.Fill(dt);
            Close();
            return dt;
        }

        /// <summary>
        /// 返回None
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public static object ExNone(string sql)
        {
            Open();
            State(sql);
            var x = cmd.ExecuteScalar();
            Close();
            return x;
        }

        /// <summary>
        /// 執行刪除
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public static int ExDelete(string sql)
        {
            Open();
            State(sql);
            var x = cmd.ExecuteNonQuery();
            Close();
            return x;
        }

        public static void State(string sql)
        {
            cmd.Connection = con;
            cmd.CommandText = sql;
        }

        public static void Open()
        {
            con.Open();
        }

        public static void Close()
        {
            con.Close();
        }

        /// <summary>
        /// 初始化數據
        /// </summary>
        /// <param name="path"></param>
        /// <returns></returns>
        public static int InitData(string path)
        {
            try
            {
                int i;
                DirectoryInfo di = new DirectoryInfo(path);
                foreach (FileInfo fo in di.GetFiles())
                {
                    if (fo.Name.ToUpper().EndsWith("SQL"))
                    {
                        var st = fo.OpenText();
                        var sql = st.ReadToEnd();
                        st.Close();
                        Open();
                        State(sql);
                        cmd.ExecuteNonQuery();
                        var filename = (fo.Name).Split('.')[0];
                        State(filename);
                        i = cmd.ExecuteNonQuery();
                        Close();
                        return i;
                    }
                }
                return -1;
            }
            catch (Exception)
            {

                throw;
            }

        }
        #endregion

        #region 數據庫不存在
        public static int exc(string sql)
        {
            using (MySqlConnection mcon = new MySqlConnection(cstr))
            {
                mcon.Open();
                MySqlCommand com = new MySqlCommand(sql,mcon);
                int i = com.ExecuteNonQuery();
                mcon.Close();
                return i;
            }
        }

        #endregion
    }
}

後臺管理的代碼以下:

using PCDD.Service;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace PCDD
{
    public partial class CRM : Form
    {
        private string sql = string.Empty;
        private int no = 0;

        #region 初始化
        public CRM()
        {
            InitializeComponent();
        }

        private void CRM_Load(object sender, EventArgs e)
        {
            l13.Text = "當前用戶:" + pojo.UserName;
        }

        #endregion

        #region 自動模式
        /// <summary>
        /// 定時器
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tm_Tick(object sender, EventArgs e)
        {
            sql = "INSERT INTO pc_module(Non,Num1,Num2,Num3,Snum,SmallSingle,BigSingle,SmallBoth,BigBoth,ModifyTime)VALUES('{0}',{1},{2},{3},{4},'{5}','{6}','{7}','{8}','{9}') ";
            var x = GenerateRandom(10, 4);
            t1.Text = x[1].ToString();
            t2.Text = x[2].ToString();
            t3.Text = x[3].ToString();
            t4.Text = (x[1] + x[2] + x[3]).ToString();
            var sum = x[1] + x[2] + x[3];
            if (sum % 2 == 0)
            {
                if (sum >= 14)
                {
                    t5.Text = string.Empty;
                    t6.Text = string.Empty;
                    t7.Text = string.Empty;
                    t8.Text = string.Empty;
                    t8.Text = "大雙";
                }
                else
                {
                    t5.Text = string.Empty;
                    t6.Text = string.Empty;
                    t7.Text = string.Empty;
                    t8.Text = string.Empty;
                    t7.Text = "小雙";
                }
            }
            else
            {
                if (sum >= 15)
                {
                    t5.Text = string.Empty;
                    t6.Text = string.Empty;
                    t7.Text = string.Empty;
                    t8.Text = string.Empty;
                    t6.Text = "大單";
                }
                else
                {
                    t5.Text = string.Empty;
                    t6.Text = string.Empty;
                    t7.Text = string.Empty;
                    t8.Text = string.Empty;
                    t5.Text = "小單";
                }
            }
            if (no == 0)
            {
                no = 819000;
                no++;
            }
            else
            {
                no++;
            }
            sql = string.Format(sql, no, x[1].ToString(), x[2].ToString(), x[3].ToString(), sum.ToString(), t5.Text.ToString(), t6.Text.ToString(), t7.Text.ToString(), t8.Text.ToString(), Convert.ToDateTime(DateTime.Now));
            MySqlHelper.ExNone(sql);


        }

        /// <summary>
        /// 產生隨機數
        /// </summary>
        /// <param name="iMax">最大範圍</param>
        /// <param name="iNum">產生的個數</param>
        /// <returns></returns>
        List<int> GenerateRandom(int iMax, int iNum)
        {
            long lTick = DateTime.Now.Ticks;
            List<int> lstRet = new List<int>();
            for (int i = 0; i < iNum; i++)
            {
                Random ran = new Random((int)lTick * i);
                int iTmp = ran.Next(iMax);
                lstRet.Add(iTmp);
                lTick += (new Random((int)lTick).Next(10));
            }
            return lstRet;
        }

        /// <summary>
        /// 設置時間間隔
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void b1_Click(object sender, EventArgs e)
        {
            var bl = IsFloat(t9.Text);
            if (t9.Text == null && t9.Text == "")
            {
                //t9.Text = "1000";//1秒
                t9.Text = "240000";//4分鐘
                tm.Interval = int.Parse(t9.Text);
                if (tm.Enabled == false)
                {
                    tm.Enabled = true;
                    l12.Text = "自動模式成功開啓";
                }
            }
            else if (bl == false)
            {
                t9.Text = string.Empty;
            }
            else if (Convert.ToDouble(t9.Text) != 0)
            {
                var s = Convert.ToDouble(t9.Text) * 1000;
                var ins = (int)s;
                //測試專用代碼
                #region 測試用
                //tm.Interval = ins;
                //if (tm.Enabled == false)
                //{
                //    tm.Enabled = true;
                //    l12.Text = "自動模式成功開啓";
                //}
                //else
                //{
                //    l12.Text = "自動模式成功開啓";
                //}  
                #endregion
                #region 發佈版本代碼
                if (ins >= 240000)
                {
                    tm.Interval = ins;
                    if (tm.Enabled == false)
                    {
                        tm.Enabled = true;
                        l12.Text = "自動模式成功開啓";
                    }
                    else {
                        l12.Text = "自動模式成功開啓";
                    }
                }
                else {
                    tm.Interval = 240000;
                    if (tm.Enabled == false)
                    {
                        tm.Enabled = true;
                        l12.Text = "對不起!你輸入的值小於240(單位:秒)默認時間間隔爲4分鐘";
                    }
                    else {
                        l12.Text = "對不起!你輸入的值小於240(單位:秒)默認時間間隔爲4分鐘";
                    }
                }
                #endregion
            }
            else
            {
                tm.Enabled = false;
                l12.Text = "自動模式成功關閉";
            }
            MessageBox.Show("設置成功!");
            Thread.Sleep(3000);
            l12.Text = "";

        }
        #endregion

        #region 手動模式

        /// <summary>
        /// 手動模式
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void b2_Click(object sender, EventArgs e)
        {
            sql = "UPDATE pc_module set Num1 ={0},Num2={1},Num3 ={2},Snum ={3},SmallSingle='{4}',BigSingle='{5}',SmallBoth='{6}',BigBoth='{7}' WHERE 1 ORDER BY ModifyTime DESC LIMIT 1";
            tm.Enabled = false;
            var s0 = t10.Text;
            var s1 = t11.Text;
            var s2 = t12.Text;
            if ((IsFloat(s0) == false) || (IsFloat(s1) == false) || (IsFloat(s2) == false))
            {
                ShowMsg();
            }
            else
            {
                if ((Convert.ToDouble(s0) >= 0 && Convert.ToDouble(s0) <= 9) && (Convert.ToDouble(s1) >= 0 && Convert.ToDouble(s1) <= 9) && (Convert.ToDouble(s2) >= 0 && Convert.ToDouble(s2) <= 9))
                {
                    var sum = Convert.ToDouble(s0) + Convert.ToDouble(s1) + Convert.ToDouble(s2);
                    l24.Text = sum.ToString();
                    l25.Text = string.Empty;
                    l26.Text = string.Empty;
                    l27.Text = string.Empty;
                    l28.Text = string.Empty;
                    if (sum % 2 == 0)
                    {
                        if (sum >= 14)
                        {
                            l25.Text = string.Empty;
                            l26.Text = string.Empty;
                            l27.Text = string.Empty;
                            l28.Text = string.Empty;
                            l28.Text = "大雙";
                        }
                        else
                        {
                            l25.Text = string.Empty;
                            l26.Text = string.Empty;
                            l27.Text = string.Empty;
                            l28.Text = string.Empty;
                            l27.Text = "小雙";
                        }
                    }
                    else
                    {
                        if (sum >= 15)
                        {
                            l25.Text = string.Empty;
                            l26.Text = string.Empty;
                            l27.Text = string.Empty;
                            l28.Text = string.Empty;
                            l26.Text = "大單";
                        }
                        else
                        {
                            l25.Text = string.Empty;
                            l26.Text = string.Empty;
                            l27.Text = string.Empty;
                            l28.Text = string.Empty;
                            l25.Text = "小單";
                        }
                    }
                    sql = string.Format(sql, s0.ToString(), s1.ToString(), s2.ToString(), sum.ToString(), l25.Text.ToString(), l26.Text.ToString(), l27.Text.ToString(), l28.Text.ToString());
                    MySqlHelper.ExNone(sql);
                }
                else
                {
                    MessageBox.Show("請輸入0-9之間的數字");
                }

            }
        }

        #endregion

        #region 模式切換
        //自動
        private void b3_Click(object sender, EventArgs e)
        {
            tm.Enabled = true;
            tm.Interval = 240000;
            //tm.Interval = 1000;
            MessageBox.Show("隨機模式開啓");


        }

        //手動
        private void b4_Click(object sender, EventArgs e)
        {
            tm.Enabled = false;
            //清空手動數據
            l24.Text = string.Empty;
            l25.Text = string.Empty;
            l26.Text = string.Empty;
            l27.Text = string.Empty;
            l28.Text = string.Empty;
            //清空自動數據
            t1.Text = string.Empty;
            t2.Text = string.Empty;
            t3.Text = string.Empty;
            t4.Text = string.Empty;
            t5.Text = string.Empty;
            t6.Text = string.Empty;
            t7.Text = string.Empty;
            t8.Text = string.Empty;
            t9.Text = string.Empty;

            t10.Text = "0";
            t11.Text = "0";
            t12.Text = "0";
            l24.Text = "0";
            l27.Text = "小雙";

            MessageBox.Show("手動模式開啓");

        }
        #endregion

        #region 基礎方法

        /// <summary>
        /// 判斷是否輸入爲數字
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public static bool IsFloat(string str)
        {
            string regextext = @"^(-?\d+)(\.\d+)?$";
            Regex regex = new Regex(regextext, RegexOptions.None);
            return regex.IsMatch(str.Trim());
        }
        public void ShowMsg()
        {
            MessageBox.Show("請檢查輸入的三個隨機數是否非法!");
        }

        #endregion

        #region 超級方法
        private void b5_Click(object sender, EventArgs e)
        {
            sql = "delete from pc_module";
            var obj = MySqlHelper.ExDelete(sql);
            if (obj != 0)
            {
                MessageBox.Show("已成功清空全部數據!");
            }
        }

        private void b6_Click(object sender, EventArgs e)
        {
            sql = "delete from Pc_Module where ModifyTime BETWEEN '{0}' AND '{1}'";
            var time1 = Convert.ToDateTime(DateTime.Now.AddHours(-15));
            var time2 = Convert.ToDateTime(DateTime.Now);
            sql = string.Format(sql, time1, time2);
            var res = MySqlHelper.ExDelete(sql);
            if (res != 0)
            {
                MessageBox.Show("已經刪除當天數據!");
            }
        }
        private void Non_Click(object sender, EventArgs e)
        {
            if (IsFloat(Non_text.Text))
            {
                no = Convert.ToInt32(Non_text.Text);
            }
            else
            {
                no = 819000;//默認值
            }
        }
        #endregion


    }
}

  以上僅供學習使用。目前博主正在研究DDD,歡迎大神作DDD的技術分享。

相關文章
相關標籤/搜索