[SQL]從sp取得值

declare @AAA VARCHAR(10)
  CREATE TABLE #TMP_DEPT
  (
  COMPID VARCHAR(5)
  ,SEG  VARCHAR(5)
  ,SEGNM  VARCHAR(5)
  ,[TEXT]  VARCHAR(50)
  ,DEPTID VARCHAR(10)
  ,DEPTSIMNM VARCHAR(20)
  )
  INSERT INTO #TMP_DEPT EXEC HDUSP_IFCOM_GETFNDEPT2_A00 'HD','1', 'LG000','','FID'
 

 SELECT @AAA =DEPTID  FROM #TMP_DEPT

  SELECT @AAA

  DROP TABLE #TMP_DEPT

[BAT]找出符合檔名檔案list,並依名稱排序,再擷取第一行的檔案名稱,複製到目的資料夾

dir /b /o-n "*DBR_INV*" > list.txt

@Echo Off&Setlocal Enabledelayedexpansion
For /f "delims=" %%i in (list.txt) do (
Set /a n+=1
If !n!==1 DEL C:\Users\andy7333\Desktop\A\%%i 
If !n!==1 COPY C:\Users\andy7333\Desktop\%%i C:\Users\andy7333\Desktop\A\
)
Pause

[c#][asp.net]表單互相連結(專案使用-不一定符合不同專案)

表單互相連結,專案使用,不一定符合不同專案

1.      開啟連結與被連結的表單,均可能需要修改,以下用IFITA30F為例說明

a.      宣告formCode & formNumber,在最外層(page_load之外) formCode可以直接指定

 #region 連結用,避免formNumber抓到錯誤的上一頁面或下一頁面定義變數

string formCode = "IFITA30F";

string formNumber = string.Empty;

#endregion

b.     page_load,連結formNumber,所有用到this.FormNumber的地方都要修改為formNumber

注意生命週期Page_InitPage_PreInitPage_InitComplete,會在page_load前生成,我目前表單沒有,如果有用到的要注意

#region 連結用,避免formNumber抓到錯誤的上一頁面或下一頁面
      
       if (!IsPostBack)
       {
            if (Request["FormNumber"] != null)
            {
                formNumber = Request["FormNumber"].ToString();
            }
            else
            {
                formNumber = this.FormNumber;
            }
        }
#endregion

c.      Gridview中,使用連結HyperLink,直接鍵結DB data 欄位IFFORMNUM

<asp:TemplateField HeaderText="表單單號">
       <ItemTemplate>
                 <asp:HyperLink runat="server" ID="Hbtn" Text='<%# Bind("IFFORMNUM") %>' HeaderText="表單單號" ItemStyle-Width="150px" />
       </ItemTemplate>
</asp:TemplateField>

RowDataBound裡面

foreach (Control c in e.Row.Cells[3].Controls)
            {
                if (c.GetType().Equals(typeof(HyperLink)))
                {
                    HyperLink hl = (HyperLink)c;
                    string FormCode = "IFITA30F";
                    HyperLink Hbtn = (HyperLink)e.Row.Cells[3].FindControl("Hbtn");
                    string FormNumber = Hbtn.Text;
                    string COMPID = ftbCOMPID.Text;
 
                    string PARM = "FormCode=" + FormCode + "&FormNumber=" + FormNumber + "&COMPID=" + COMPID;
                    string TempURL = ResolveClientUrl("~/Apps/FORM/" + FormCode + "/" + FormCode + ".aspx?PGMID=VIEW&" + PARM + "&");
                    string URL = (DataManager.ResolveValidUrl(TempURL, "FCOM010"));
 
                    hl.Attributes.Add("onclick""opened2=window.open('" + URL + "','資訊類請採購單','width=1000,height=700,scrollbars=yes',''); opened2.opener=null; setTimeout('opened2.close()', 180000); return false;");
                    hl.NavigateUrl = "#"; 
                }
            }

 

2.      注意事項(原表單和被開啟表單均須要查看)

A.     Gridview中其他控制項,在傳送表單時,會有值需要在page_load重抓一次的寫法

a.      請在gridviewRowDataBound時,將值丟給ViewState,例如ViewState["IFITA31FD80"]

b.     Page_load重抓值時,請用ViewState["IFITA31FD80"]傳回給dataset

 

B.     如果Gridview有使用temptable,例如Gridview1.Temptable  => 注意開啟與被開啟表單的Gridview1名稱,如果重複,可能導致抓錯Temptable

a.      如果開啟同一formCode的表單,需要開啟自己本身的表單,盡可能避開使用Temptable,改用ViewState可以有相同作用但不會錯誤

b.     開啟不同formCode的表單,只要在命名Gridview時,加入formCode名稱就可以避開問題,例如fgvD1 => fgvIFITA30D1

 

C.     如果有使用,關號、支號等判斷,請注意,this.StepA or (B)=> 會抓到你正在處理的表單的關號,而非被開啟的表單視窗的關號

a.      簡單判斷為formNumber == this.FormNumber,如果相等,就是正在處理的表單,如果不相等,就是被開啟的表單

b.     如必須在被開啟的表單抓到關號,請從DB抓對應formCode & formNumber的關號支號,才會正確


[DataSet Bug]無法啟用條件約束。一或多個資料列的值違反非 Null、唯一或外部索引鍵條件約束

在使用TableAdapter作Query時發生 1. 原因為有些資料欄位Query出來後為null值 但是該欄位在dbDataSet的屬性AllowDBNull為False 因此把該欄位(或乾脆把全部欄位屬性AllowDBNull改為True 2. maxLength 檢...