2023年12月4日 星期一

[SQL]顯示千分位與小數顯示

 

  • CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
    • CONVERT style參數說明1 (expression為 money 或 smallmoney型別):
      • 0 : 預設,保留小數位後兩位,並四捨五入,但沒有千分位逗點
      • 1: 保留小數位後兩位,並四捨五入,且有千分位逗點
      • 2: 沒有千分位逗點,小數點後四位(會四捨五入)

回傳含有千分位逗點的字串

SELECT CONVERT(VARCHAR(12), CONVERT(MONEY, '1234567'), 1)
// 查詢結果: 1,234,567.00

去除兩位小數.00

SELECT REPLACE(CONVERT(VARCHAR(12), CONVERT(MONEY, '1234567'), 1), '.00', '')
// 查詢結果: 1,234,567

SQL SERVER 2012 +

SQL Server 2012之後多了format指令可以使用

  • 2FORMAT ( value, format [, culture ] )

也可以使用format達到回傳千分位逗點

SELECT FORMAT(1234567, 'N')
// 查詢結果: 1,234,567.00

如不顯示小數點則改為

SELECT FORMAT(1234567, 'N0')
// 查詢結果: 1,234,567

2023年8月30日 星期三

[SQL]查詢sql server中使用狀態不是睡眠而是運行中的CPU狀態

以下語法 從記憶體取得資訊

並且可查看詳細資訊 



select * from sys.sysprocesses as a cross apply sys.dm_exec_sql_text( a.sql_handle )

where spid >50 and status <> 'sleeping'

order by cpu desc

2023年3月28日 星期二

[SQL]十進制轉二進制 用Function實現

SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION [dbo].[FN_Convert10To2Bin](@i INT)
RETURNS VARCHAR(31)
AS
BEGIN
    DECLARE @str VARCHAR(31);
    SET @str=''

    WHILE (@i>0)
        SELECT @str=CAST(@i%2 AS VARCHAR(10))+@str, @i=@i/2
    RETURN(@str)

END
GO


呼叫方式
select dbo.[FN_Convert10To2Bin](10)

結果 1010

2023年3月24日 星期五

[C#]開啟外部程式方式

除了用以下方式:
https://rexyuan0502.blogspot.com/2019/01/c_11.html

也可以使用下列方式執行:

using System.Diagnostics;
using System.ComponentModel;

 class MyProcess
    {
        public string g_StrFullPath = "C:\\Test\\NSServer.exe";
        public string g_StrPath = "C:\\Test";
        public string g_StrName = "NSServer.exe";
        // Opens the Internet Explorer application.
        void OpenApplication(string myFavoritesPath)
        {
            // Start Internet Explorer. Defaults to the home page.
            Process.Start(g_StrFullPath);

            // Display the contents of the favorites folder in the browser.
            Process.Start(myFavoritesPath);
        }

        // Opens urls and .html documents using Internet Explorer.
        void OpenWithArguments()
        {
            // url's are not considered documents. They can only be opened
            // by passing them as arguments.
            Process.Start(g_StrFullPath, g_StrPath);

            // Start a Web page using a browser associated with .html and .asp files.
            Process.Start(g_StrFullPath, g_StrPath);
            Process.Start(g_StrFullPath, g_StrPath);
        }

        // Uses the ProcessStartInfo class to start new processes,
        // both in a minimized mode.
        void OpenWithStartInfo()
        {
            ProcessStartInfo startInfo = new ProcessStartInfo(g_StrFullPath);
            startInfo.WindowStyle = ProcessWindowStyle.Normal;

            Process.Start(startInfo);

            startInfo.Arguments = g_StrPath;

            Process.Start(startInfo);
        }

        public void Main()
        {
            // Get the path that stores favorite links.
            string myFavoritesPath =
                Environment.GetFolderPath(Environment.SpecialFolder.Favorites);

            MyProcess myProcess = new MyProcess();

            //myProcess.OpenApplication(myFavoritesPath);
            //myProcess.OpenWithArguments();
            myProcess.OpenWithStartInfo();
        }
    }


使用方式 可放到namespace 中 拆解使用

2022年12月8日 星期四

[C#]一般事件E EventArgs也能變成其他事件

 EventArgs是一個主要事件的基底基層,所以我們只要將EventArgs強制轉型成MouseEventArgs就好了

參考來源: https://cyfangnotepad.blogspot.com/2012/08/cnet-eventargs.html


private void lkl_ForgetPsw_DoubleClick(object sender, EventArgs e)
{
  MouseEventArgs Mouse = (MouseEventArgs)e;
  if (Mouse.Button == MouseButtons.Left)
  {
     MessageBox.Show("Ok");
   }

}

2022年10月23日 星期日

[C#]NuGet套件推薦-ILMerge

 使用WindowsForm開發時很常會引用許多dll或其他相關套件,

編譯成執行檔時,除執行檔外還會有許多dll或.Json的文件,不美觀外也不便給他人使用


使用此套件即可解決此問題


https://github.com/dotnet/ILMerge

[SQL]顯示千分位與小數顯示

  CONVERT ( data_type [ ( length ) ] , expression [ , style ] ) CONVERT style參數說明 1  (expression為 money 或 smallmoney型別): 0 : 預設,保留小數位後兩位,並四捨...