2019年6月24日 星期一

(SQL)抽獎系統

https://www.fooish.com/sql/select-into.html

隨機抽取
select top 5 * from  [dbo].[Temp2] order by newid()


SELECT table_column1, table_column2, table_column3...
INTO new_table_name [IN another_database]
FROM table_name;
其中 new_table_name 為欲新建的資料表名稱,該資料表會自動建立,且不可與已經存在的資料表名稱相同;而 another_database 為至外部資料庫的路徑。

ps:
結合運用sql join 語法
https://dotblogs.com.tw/caubekimo/2010/07/28/16874

2019年6月20日 星期四

建立 . 開頭命名的的資料匣

1.先用cmd指令下md ".well-know"
2.iis建立新增虛擬目錄...路徑指向1.的位置
3.再將相關檔案copy到此資料匣

2019年6月14日 星期五

C# Winform開啟網址url

 #region Winform開啟網址url
        private void BtnLogo_Click(object sender, EventArgs e)
        {
            OpenUrl("https://www.apmtech.com.tw/");
        }
        /// <summary>
          /// C# Winform開啟網址url
          /// </summary>
          /// <param name="url">要開啟的網頁網址</param>
        public void OpenUrl(string url)
        {
            try
            {
                Process pro = new Process();
                //pro.StartInfo.FileName = "iexplore.exe";
                //pro.StartInfo.FileName = "MicrosoftEdge.exe";
                pro.StartInfo.FileName = "chrome.exe";
                pro.StartInfo.Arguments = url;
                pro.Start();
            }
            catch (Exception)
            {

                this.rtfMsg.Text = "Hi:請確認chrome.exe正常" + "   @" + DateTime.Now.ToString();
            }

        }
        #endregion

視窗縮小到工具列


C#.Net 視窗縮小到工具列

        #region 使用NotifyIcon視窗縮小到工具列
        private void BtnFormMini_Click_1(object sender, EventArgs e)
        {
            this.BtnFormMini.Click += Form1_Resize;
        }

        private void NotifyIcon1_Click(object sender, EventArgs e)
        {
            this.Visible = true;
            this.WindowState = FormWindowState.Normal;
            this.NotifyIcon1.Visible = false;
        }
        private void Form1_Resize(object sender, EventArgs e)
        {
            this.Hide();
            this.NotifyIcon1.Visible = true;
        }
        #endregion

2019年6月12日 星期三

不同的 Controller 之間導向 View=>以下三種寫法

https://jeffprogrammer.wordpress.com/2016/05/18/asp-net-mvc-redirect-to-view/


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace prjTest.Controllers
{
    public class DefaultController : Controller
    {
        // GET: Default
        public ActionResult Index()
        {
            string virtualPath = System.Web.HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority) + HttpRuntime.AppDomainAppVirtualPath;
            System.Web.HttpContext.Current.Response.Redirect(virtualPath + "Apply/Index", true);
            //下面不會跑
            ViewBag.msg = virtualPath;
            return View();
        }
    }
}


atrribute實作範例

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;

namespace prjAttribute
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void Button1_Click(object sender, EventArgs e)
        {
            label1.Text += typeof(Button) + "\n";
            PrintAuthorInfo(typeof(FirstClass));
            PrintAuthorInfo(typeof(SecondClass));
            PrintAuthorInfo(typeof(ThirdClass));
        }
        //Type 是的根據System.Reflection功能主要的方法來存取中繼資料。
        //使用的成員Type取得型別宣告,成員的類型(例如建構函式、 方法、 欄位、 屬性和事件的類別)
        //的詳細資訊,以及模組和組件部署所在的類別。
        private void PrintAuthorInfo(Type t)
        {
           
            label1.Text += $"Author information for {t}"+ "\n";
            //System.Console.WriteLine("Author information for {0}", t);

            // Using reflection. 
            //取得type上的裝飾(特性Attribute),可能很多個所以用陣列
            System.Attribute[] attrs = System.Attribute.GetCustomAttributes(t);  // Reflection. 

            // Displaying output. 
            foreach (System.Attribute attr in attrs)
            {
                if (attr is Author)
                {
                    Author a = (Author)attr;
                    //取的該Attribute的屬性
                    label1.Text += string.Format(" {0}, version {1:f}", a.GetName(), a.version) + "\n";
                    // System.Console.WriteLine("   {0}, version {1:f}", a.GetName(), a.version);
                }
            }
        }
        // Multiuse attribute. 
        [System.AttributeUsage(System.AttributeTargets.Class |
                               System.AttributeTargets.Struct,
                               AllowMultiple = true)  // Multiuse attribute. 
        ]
        public class Author : System.Attribute
        {
            string name;
            public double version;

            public Author(string name)
            {
                this.name = name;

                // Default value. 
                version = 1.0;
            }

            public string GetName()
            {
                return name;
            }
        }

        // Class with the Author attribute. 
        [Author("P. Ackerman")]
        public class FirstClass
        {
            // ... 
        }

        // Class without the Author attribute. 
        public class SecondClass
        {
            // ... 
        }

        // Class with multiple Author attributes. 
        [Author("P. Ackerman"), Author("R. Koch", version = 2.0)]
        public class ThirdClass
        {
            // ... 
        }

    }
}