發表文章

SQL查某年某月有幾天的方法

  BOSS表示不論要查詢的月份&產線是否每天都有可動率及PPLH,都要列在圖表中,一開始的做法是在C#中不論查幾年幾月都塞31天,但若圖表在呈現時查詢的月份明明沒有31天(EX:2月只有28天)卻在圖表中列出來,即使表的row中是沒有值的但難免會令看的人感到突兀,主要方法及參考資料包含以下前輩的文章: 1.整體結構-利用數值序列產生當月日曆資料( SQL QnA -部落格 2.計算某初始日期加上一個數值後,傳回日期的方法( 我的Coding之路 -部落格) 3.日期格式轉換方法( 資訊園 -部落格) 4.T-SQL-master..spt_values應用( -Ma の 筆記本- -部落格) -------------------------我是分割線,以下可照搬到SQL中執行查詢-------------------------------------- SELECT number + 1 AS N --number是0開始所以要+1否則欄位N會從0開始 ,CONVERT(VARCHAR(10), DATEADD(DD, number, CONVERT(CHAR(8), '2017-02-', 111) + '01'), 120) AS DT   --DATEADD函數以天為單位,number為指定數值,再指定起始日期'2017-02-01',最後再CONVERT一次日期格式 FROM master.dbo.spt_values WHERE NAME IS NULL --不好解釋但實際去spt_values表看NAME IS NULL前後有什麼差就可以懂了 AND number < DAY(DATEADD(MM, 1, CONVERT(CHAR(8), '2017-02-', 111) + '01') - 1) -- <右邊是把月底算出來,用的是下個月初減1底即得本月底的概念 ------------------------------------------------------------------------------------------------------------------------ --

C#-Form自動偵測按下ENTER鍵時執行button

form1-屬性-其他-Keypreview-True form1-屬性-其他-AcceptButton-button1

DLL檔的輸出、參考及使用

圖片
1.建DLL檔方法 2.單一方案輸出多個DLL檔方法 3.參考DLL檔的方法 4.使用DLL檔物件的方法

C#-多表單上下頁功能

以Form2為例         //上一頁         private void button1_Click(object sender, EventArgs e)         {                                 this.Close();                             }         //下一頁         private void button2_Click(object sender, EventArgs e)         {             Form3 f3 = new Form3();             f3.Owner = this;             f3.ShowDialog();         }

checkBox控制項-多個checkBox加為共同事件並限制只能選取其中一個

 private void Form1_Load(object sender, EventArgs e)         {             //將checkBox2選取改變事件加入checkBox1_CheckedChanged事件成為一個共同事件             checkBox2.CheckedChanged += new EventHandler(checkBox1_CheckedChanged);                   } private void checkBox1_CheckedChanged(object sender, EventArgs e)         {             //以CheckedX記錄並傳回按下的checkBox             CheckBox CheckedX = (CheckBox)sender;             / /不允許在選取性別時同時選取男性與女性                       //針對同時選取的情況,將男女性選取的checkBox.checked皆改為false,再將選取的checkBox.checked屬性改為True                       if ((checkBox1.Checked==true) &&(checkBox2.Checked==true))             {                 checkBox1.Checked = false;                 checkBox2.Checked = false;                 CheckedX.Checked = true;    }   }

SQL連線設定-SQL 連線字串中關於 Persist Security Info 參數的用途

當你在新增連線時,可以選擇 [Save my password] 選項,如果你有勾選,可以點選 [Advanced...] 按鈕查詢透過工具幫你產生的連線字串。 實際儲存在 web.config 的連線參數大概將會長這樣: Data Source =.; Initial Catalog =master; Persist Security Info =True; User ID =sa; Password =xxxx 光透過 Visual Studio 工具上的說明就可大略得知 Persist Security Info 的用途。在預設不加上 Persist Security Info 的情況下,預設為 False,當程式需要進行資料庫連線時,此時會將「敏感資訊」例如:密碼(Password) 等資訊暫存在連線物件中(記憶體裡),當連線建立成功之後,就會立即將「敏感資訊」清除,這能確保記憶體中的「敏感資訊」會立即清除,降低資訊揭露(Information Leakage)的風險,因為這樣的風險也是出現在  OWASP Top 10 (2007)  的第六位 (A6)。 精確的來說,連線資訊是在  SqlConnection  類別的  ConnectionString  屬性或 DbConnection  類別的  ConnectionString  屬性中。 當你將 Persist Security Info 宣告為 True 時,即便連線已經建立,也會將密碼儲存在記憶體中,供後續程式引用,而我們就剛好有一支程式需要在程式執行的過程中取得新的連線,需要用到原本的連線參數,所以需要將 Persist Security Info 宣告為 True 才能正常運作。 其實也不一定要將Persist Security Info 宣告為 True,因為只要將該程式修改成直接從 web.config 中重新讀取 Connection String 即可。 数据库连接前 ConnectString="Provider=MSDAORA.1;Password=mypassword;User ID=yzs;Data Source=ydgl22; Persist Security Info=false " 数据库连接成

C#常用的幾個特殊逸出Escape字元

C# 幾個常用的逸出字元,例如換行,Tab等,如何使斜線\不被視為逸出字元 C#有幾個比較常的用逸出字元,整理如下表 : 跳脫字元 功能說明 \' 單引號 \" 雙引號 \\ 反斜線 \a 發出一聲警告 \b 倒退一個字元  \f Form Feed  \n 換新行  \r 換行並移到最前方 \t 水平方向的Tab \v 垂直方向的Tab  比如說,要達成以下文字的效果 : =============Sample============= 舉例 :          測試 =============Sample============= 說明 : [舉例:] 之後要換新行,而 [測試] 前面有個Tab空格. 字串 = "舉例:\r\n\t測試". 這樣就可以達到以上的效果. 另一個方向去思考個問題,  \r\n 的Length為多少? 一般會很直覺的,答案就是 4 . 但如果這麼簡單,也不用提出來了,答案是 2. 因為斜線 \ 不計,所以 \t 的長度就是 1 而連兩個斜線 \\ ,長度也是1 但如果我們存放的文字剛好有這些逸出字元要怎麼辨?  例如 "C:\test\net" 有兩種做法 : 方法1 : 打兩個斜線 "C:\\test\\net" 方法2 : 在前面加@ @"C:\test\net"  這樣 \t 跟 \n 就不會被視為逸出字元了. 參考 :  MSDN