SHOWcode

2018年4月19日 星期四

JS刷新框架的腳本語句(紀錄)



JS刷新框架的腳本語句
//如何刷新包含該框架的頁面用   
<script language=JavaScript>
  parent.location.reload();
</script>   
//子窗口刷新父窗口
<script language=JavaScript>
   self.opener.location.reload();
</script>

( 或 <a href="javascript:opener.location.reload()">刷新</a>   )

//如何刷新另一個框架的頁面用   
<script language=JavaScript>
  parent.另一FrameID.location.reload();
</script>

2018年4月18日 星期三

C#.NET Gridviewn 塞 CheckBox AND TextBox (含取直)


Gridviewn塞CheckBox AND TextBox

=======.ASPX========

                     <asp:GridView ID="gview" runat="server" >
                            <Columns>
                                <asp:TemplateField>
                                    <ItemTemplate>
                                        <asp:CheckBox ID="CheckBox1" runat="server" />
                                    </ItemTemplate>
                                   
                                </asp:TemplateField>
                                 <asp:BoundField HeaderText="NAME01" DataField="NAME01" />
                                <asp:BoundField HeaderText="NAME02" DataField="NAME02" />
                                <asp:BoundField HeaderText="NAME03" DataField="NAME03" />
                               
                                 <asp:TemplateField HeaderText="NAME04">
                                    <ItemTemplate>
                                        <asp:TextBox ID="TextBox1" runat="server" />
                                    </ItemTemplate>
                                   
                                </asp:TemplateField>
                            </Columns>
                        </asp:GridView>

=======.CS===========
#region 判斷勾選與取值
    protected void bt_Click(object sender, EventArgs e)
    {
        String test = "";
        String test_text = "";
       
        int total = 0;

        for (int i = 0; i < gview.Rows.Count; i++)
        {
            GridViewRow gvr = gview.Rows[i];

            CheckBox ckb = (CheckBox)gvr.FindControl("CheckBox1");
            TextBox tb = (TextBox)gvr.FindControl("TextBox1");
            if (ckb.Checked == true)
             {
                test = gvr.Cells[1].Text.ToString().Trim();
                test_text = tb.Text.ToString().Trim();
             
             }

        }
    }

2018年4月17日 星期二

alert("") 確認後執行函數

alert("") 確認後執行函數

<script type="text/javascript">
alert("提交成功!");
window.location.reload(); 
</script>

Oracle 查看ROWID



//查看ROWID

SELECT     ROWID, TB_001.*    FROM TB_001

2018年4月12日 星期四

[Excel VBA]輸入yyyymmdd直接轉換成日期格式(紀錄)

[Excel VBA]輸入yyyymmdd直接轉換成日期格式


Function DateConvert(x)

If Val(x) <> 0 And Len(x) = 8 Then

DateConvert = Val(Left(x, 4)) & "/" & Val(Mid(x, 5, 2)) & "/" & Val(Right(x, 2))

Else

DateConvert = "#N/A"

End If

End Function



不要去0的話把Val()去掉就行

Javascript 抓ASP.NET的控制項ID 抓控制項的 Value 跟 Text(紀錄)


document.getElementById("<%=this.控制項ID.ClientID %>").value



母版 Master
 document.getElementById('<%= Page.Master.FindControl("ContentPlaceHolder1").FindControl("Button1").ClientID %>').click();


母版這樣也抓的到哦
 var id = $get("<%=lbl_case_oid.ClientID%>").innerText;
          alert(id);

<script type="text/javascript">
    function lookClientID() {
        //  str = document.getElementById("<%=this.DropDownList2.ClientID%>").value;
        //alert(str);  //出來是值
        str = document.getElementById("<%=this.DropDownList2.ClientID%>");
        alert(str.id); //出來是控制項ID
    }
    </script>

=============更新============================================

<script type="text/javascript">
    function lookClientID() {
          str = document.getElementById("<%=this.DropDownList2.ClientID%>").value;
          if (str == "") {
              alert("請選資料")
          } else {
              strtxt = document.getElementById("<%=this.TextBox1.ClientID%>");
              strtxt.value = str;
           }
    </script>

=============抓下拉選單的顯示文字,不是抓value====================

<script type="text/javascript">
    function lookClientID() {
          str = document.getElementById("<%=this.DropDownList2.ClientID%>").value;
          if (str == "") {
              alert("請選資料")
          } else {
              strddl = document.getElementById("<%=this.DropDownList2.ClientID%>");
              var index = strddl.selectedIndex;
              var strval = strddl.options[index].text;
              alert(strval);
           }
    }
    </script>
============================================




原址:Javascript 抓ASP.NET的控制項ID 抓控制項的 Value 跟 Text

javascript 父子傳值


父子傳值

=================父===================================
  <script language="javascript">
         function openwindow() {
             var objName = "<%=Label46.ClientID%>";
             var runcard = document.getElementById("<%=txt_pB_1_1.ClientID%>").value;
             var url = "data_view.aspx?Obj=" + objName + "&card=" + runcard ;
             var name = "新視窗";    //網頁名稱;
             var iWidth = "500";  //視窗的寬度;
             var iHeight="500"; //視窗的高度;
             var iTop = (window.screen.availHeight - 30 - iHeight) / 2;  //視窗的垂直位置;
             var iLeft = (window.screen.availWidth - 10 - iWidth) / 2;   //視窗的水平位置;
             window.open(url, name, 'height=' + iHeight + ',,innerHeight=' + iHeight + ',width=' + iWidth + ',innerWidth=' + iWidth + ',top=' + iTop + ',left=' + iLeft + ',status=no,location=no,status=no,menubar=no,toolbar=no,resizable=no,scrollbars=no');
         }
         </script>



=================子===================================

 <script language="javascript">
        function funReturn() {
            var Obj = "<%=Request["Obj"].ToString()%>";
          <%-- var rtnObj = parent.window.opener.document.getElementById(Obj);
           rtnObj.value = document.getElementById("<%=TextBox1.ClientID%>").value;--%>
            var rtnObj = window.opener.document.getElementById("Label46");
            rtnObj.innerText = document.getElementById("<%=TextBox1.ClientID%>").value;

        window.close();
        }
    </script>

C# 網路資源(紀錄)


SQL基本語法

直接SQL分頁方法

[.NET] GridView 自訂分頁 SOP 快速步驟

Gridview 自訂分頁

HTML基本語法

C#.Net MessageBox

[ C# ] 資料庫程式連接方式
1-連接方式
2-連接方式

修圖改圖工具

C#.Net A視窗切換B視窗

C# time

C#的DateTime.Now函數詳解

DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")

C# WF 頁面傳值

C#.net 關鍵字查詢功能

C#.net GridView

ASP.NET(C#) GridView (编辑、删除、更新、取消)//大幫助

[GridView][ASP.NET] GridView 新增、修改、刪除與排序,沒資料時顯示標題列

在SqlDataSource更新、新增、刪除資料時,手動加入額外的SQL指令(以Transaction方式更新)

在GridView中加入DropDownList

ASP.net(C#) 動態顯示時間

[ASP.net WebForm] 登入後導回之前的頁面

Combobox 下拉式選單

[C#] 下拉式選單(DropdownList)如果記錄的是ListItem Text,該如何呈現使用者上次選的結果。

2018年4月11日 星期三

C#.NET 如何在Oracle中一次執行多條sql語句


C#.NET 如何在Oracle中一次執行多條sql語句

begin 
update TB_VG set seq = 1, vessel_id = 'Jin14', vessel_type = 'TRACK' where batch_number = '20837' and train_id = '0233086';
update TB_VG set seq = 2, vessel_id = 'Jin14', vessel_type = 'TRACK' where batch_number = '20992' and train_id = '0233110';
end;

傳送門:如何在Oracle中一次執行多條sql語句

C#.NET DropDownList 給值OR 取值(紀錄)




 #region 下拉選單
    protected void droplist_add()
    {
        try
        {
            OracleConnection conn = new OracleConnection("conn.String"); // C#

            conn.Open();

            OracleCommand cmd = new OracleCommand();

            cmd.Connection = conn;
         
            cmd.CommandText = "SELECT TEST01TEST02 FROM TB_TEST";
            OracleDataReader reader_class = cmd.ExecuteReader();

            DataTable dt_class = new DataTable();

            dt_class.Load(reader_class);

            conn.Close();
           
            int dept_count = dt_class.Rows.Count;

            for (int i = 0; i < dept_count; i++)
            {
                ListItem list = new ListItem();
                list.Value = dt_class.Rows[i][0].ToString().TrimEnd();
                list.Text = dt_class.Rows[i][0].ToString().TrimEnd() + ":" + dt_class.Rows[i][1].ToString().TrimEnd();
                list_timecls.Items.Add(list);
            }

            // Label46.Text = list_timecls.SelectedValue.ToString().Trim();  //值抓取方法

        }
        catch { }

    }

    #endregion

C#.NET GridView變色

GridView變色


 protected void GridView1_PreRender(object sender, EventArgs e)
    {
        foreach (GridViewRow GV_Row in GridView1.Rows)
        {
            GV_Row.Cells[8].ForeColor = System.Drawing.Color.Red;
        }
    }

C#.NET 彈跳視窗 (紀錄)


C#.NET 彈跳視窗


=====JavaScript=====
alert彈跳視窗

Response.Write("<script language='JavaScript'>alert('TEST測試!');</script>");



彈跳視窗的頁面.cs裡的寫法
========================================
string url= XXXXX;   //<~~xxxxx為自己定義想要顯示的頁面

//彈跳視窗的JavaScript語法(第三個參數是調整彈跳視窗的大小,第四個參數是允許出現捲軸)
string newWin = "window.open('" + url+ "', 'resizepic','height=700,width=900,scrollbars=yes');";

//ClientScript的是將JavaScript語法寫到Client端HTML裡的</form>上面
ClientScript.RegisterStartupScript(this.GetType(), "pop", newWin, true);



PS:如果第三個參數沒有設定+瀏覽器的分頁功能是設定以新分頁取代新視窗時~
         就不會出現彈跳視窗~
         會變成開啟新分頁的模樣~

C# 關閉Form應用程式(記錄)

C# winform   關閉Form應用程式


真正的關掉了視窗
後面的程式不會繼續在內部動作

====
      public Form()
      {
            this.Close();
            Environment.Exit(Environment.ExitCode);

            InitializeComponent();
        }
=====

C#.NET 刷新頁面的六種方法




ASP.NET刷新頁面的六種方法


第一:
private void Button1_Click( object sender, System.EventArgs e )  
{
     Response.Redirect( Request.Url.ToString( ) );
}


第二:
private void Button2_Click( object sender, System.EventArgs e )  
{
     Response.Write( "
     <script language=javascript>window.location.href=document.URL;
     </script>" );
}


第三:
private void Button3_Click( object sender, System.EventArgs e )  
{
     Response.AddHeader( "Refresh","0" );
}


第四:
private void Button6_Click( object sender, System.EventArgs e )  
{
     //好像有些不對?
     //Response.Write( "
     <script language=javascript>window.location.reload( );
     </script>" );
}



第五:(需替換<>)
<script><!--
var limit="3:00"
if ( document.images )
{
     var parselimit=limit.split( ":" )parselimit=parselimit[0]*60+parselimit[1]*1
}
function beginrefresh( )
{
     if ( !document.images )returnif ( parselimit==1 )window.location.reload( )else
     {
         parselimit-=1curmin=Math.floor( parselimit/60 )cursec=parselimit%60if ( curmin!=0 )curtime=curmin+"分"+cursec+"秒後重刷本頁!"elsecurtime=cursec+"秒後重刷本頁!"window.status=curtimesetTimeout( "beginrefresh( )",1000 )
     }
}
window.onload=beginrefresh//-->   </script>
<DIV style="Z-INDEX: 102;
LEFT: 408px;
POSITION: absolute;
TOP: 232px" ms_positioning="text2D">
<P><FONT size="3">自動刷新頁面</FONT></P>
</DIV>


第六:
<meta http-equiv="refresh" content="300;
url=target.html">
用window.location.href實現刷新另個框架頁面 (轉載自 仰天一笑)
   在寫ASP.Net程序的時候,我們經常遇到跳轉頁面的問題,我們經常使用Response.Redirect ,如果客戶要在跳轉的時候使用提示,這個就不靈光了,如:
Response.Write("<script>alert('恭喜您,注冊成功!');</script>");
Response.Redirect("main.html");
   這時候我們的提示內容沒有出來就跳轉了,和Response.Redirect("main.html");沒有任何區別。
   這時我們采用下面代碼試驗一下:
Response.Write("<script language=javascript>alert('恭喜您,注冊成功!')</script>");
Response.Write("<script language=javascript>window.location.href='main.html'</script>");
   這個即實現了我們的要求,在提示後,跳轉頁面。
   最重要的是window.location.href 語句可以實現一個框架的頁面在執行服務器端代碼後刷新另一個框架的頁面(Response.Redirect無法達到,至少我沒有發現):
   如:index.htm頁面中有二個框架,分別? frameLeft和frameRight,在frameRight頁面中執行服務器端代碼後刷新frameLeft中的頁面。
   先前最常見的是注冊之後,自動刷新登?框,讓登?框換成已登?頁面,只要在注冊成功的代碼之後加上一段,即可以實現刷新另個框架的頁面。代碼如下:
Response.Write("<script language=javascript>alert('恭喜您,注冊成功!')</script>");
Response.Write("<script language=javascript>window.parent.frameLeft.location.href='main.html'</script>");

自動刷新頁面的實現方法總結:
   1)
   <meta http-equiv="refresh"content="10;url=跳轉的頁面">
   10表示間隔10秒刷新一次
   2)
<script language=''javascript''>
window.location.reload(true);
</script>
   如果是你要刷新某一個iframe就把window?換成frame的名字或ID號
   3)
<script language=''javascript''>
window.navigate("本頁面url");
</script>
   4)
function abc()
{
window.location.href="/blog/window.location.href";
setTimeout("abc()",10000);
}
   刷新本頁:
   Response.Write("<script language=javascript>window.location.href=window.location.href;</script>")
   刷新父頁:
   Response.Write("<script language=javascript>opener.location.href=opener.location.href;</script>")
   轉到指定頁:
   Response.Write("<script language=javascript>window.location.href='yourpage.aspx';</script>")
   刷新頁面實現方式總結(HTML,ASP,JS)
   'by aloxy
   定時刷新:
   1,<script>setTimeout("location.href='url'",2000)</script>
   說明:url是要刷新的頁面URL地址
         2000是等待時間=2秒,
   2,<meta name="Refresh" content="n;url">
說明:
   n is the number of seconds to wait before loading the specified URL.
   url is an absolute URL to be loaded.
   n,是等待的時間,以秒?單位
   url是要刷新的頁面URL地址
   3,<%response.redirect url%>
   說明: 一般用一個url?數或者表單傳值判斷是否發生某個操作,然後利用response.redirect 刷新。
   4,刷新框架頁
   〈script language=javascript>top.leftFrm.location.reload();parent.frmTop.location.reload();</script〉
   彈出窗體後再刷新的問題
Response.Write("<script>window.showModalDialog('../OA/SPCL.aspx',window,'dialogHeight: 300px; dialogWidth: 427px; dialogTop: 200px; dialogLeft: 133px')</script>");//open
             Response.Write("<script>document.location=document.location;</script>");
   在子窗體頁面代碼head中加入<base target="_self"/>
   刷新的內容加在    if (!IsPostBack) 中
   在框架頁中右面刷新左面 
    //刷新框架頁左半部分
    Response.Write("<script language=javascript>");
    Response.Write("parent.left.location.href='PayDetailManage_Left.aspx'");
    Response.Write("</script>");
   頁面定時刷新功能實現
   有三種方法:
   1,在html中設置:
   <title>xxxxx</title>之後加入下面這一行即可!
定時刷新:<META HTTP-EQUIV="Refresh" content="10">
   10代表刷新間隔,單位?秒
   2.jsp
   <% response.setHeader("refresh","1"); %>
   每一秒刷新一次
   3.使用javascript:
<script language="javascript">
setTimeout("self.location.reload();",1000);
<script>
   一秒一次
   頁面自動跳轉:
  1,在html中設置:
  <title>xxxxx</title>之後加入下面這一行即可!
  定時跳轉並刷新:<meta http-equiv="refresh" content="20;url=http://自己的URL">,
  其中20指隔20秒後跳轉到http://自己的URL 頁面。
  點擊按鈕提交表單後刷新上級窗口
  A窗口打開B窗口
  然後在B裏面提交數據至C窗口
  最後要刷新A窗口
  並且關閉B窗口
  幾個javascript函數
  //第一個自動關閉窗口
<script language="javascript">
<!--
function clock(){i=i-1
document.title="本窗口將在"+i+"秒後自動關閉!";
if(i>0)setTimeout("clock();",1000);
else self.close();}
var i=2
clock();
//-->
</script>
   //第二個刷新父頁面的函數
<script language="javascript">
opener.location.reload();
</script>

C#.Net DataTime格式(紀錄)



[C#]取得現在日期和時間(DateTime Format String)
在C#中,可以用DataTime取得目前的時間以及日期。
Console.Write(DateTime.Now.TimeOfDay);
21:15:56.0797894

Console.Write(DateTime.Now.ToShortTimeString());
下午 09:16

也可以更進一步用ToString()來把DataTime轉成我們要得格式
Console.Write(DateTime.Now.ToString("HH:mm ss tt"));
21:18 01 下午

大寫HH表示用24小時制表示,也可以改成小寫hh用12小時制
Console.Write(DateTime.Now.ToString("HHmm"));
2118

日期也可以用DataTime取得,以下是範例:
Console.Write(DateTime.Now.ToShortDateString());
2012/10/30

同樣也可以用ToString()轉成我們要得格式
Console.Write(DateTime.Now.ToString("MM-dd-yyyy"));
10-30-2012

Console.Write(DateTime.Now.ToString("ddd dd MMM, yyyy"));
週二 30 十月, 2012

C# 指定路徑 (紀錄)



WF
 Application.StartupPath + "/database/a.mdb"

WEB
Server.MapPath("../upload/" + farmno.Trim().ToString() + "/license/")

C#.NET 換DropDownList內容的值


//更換DropDownList內容的值,依資料表所查到的值來變動
    void ChangDropDownList(DropDownList DDL, String CheckStr)
    {


        if (DDL.SelectedIndex >= 0)
        {
            DDL.SelectedItem.Selected = false;
            for (int i = 0; i <= DDL.Items.Count - 1; i++)
            {

                if (DDL.Items[i].Text == CheckStr)
                {
                    DDL.Items[i].Selected = true;
                    break;
                }
                else
                {
                    DDL.Items[i].Selected = false;
                }
            }
        }


    }

C#.NET 等待畫面紀錄(script)

C#.NET 等待畫面紀錄

在網頁後臺cs代碼:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ShowLoanding();
//.....
//你的資料載入代碼
Thread.Sleep(1000);//執行緒停留1秒,也可以不要。
}
}

//顯示載入進度
private void ShowLoanding()
{
Response.Write("<div style='position:absolute;z-index:600;width:expression(document.body.clientWidth);height:expression(document.body.clientHeight);background-color:#FFFFFF;text-align:center;padding-top:150px;' id='mydiv' >");
Response.Write("<img src='HTTP://www.kuwant.com/common/images/waiting.gif'>&nbsp;Loading...");
Response.Write("</div>");
Response.Write("<script language=javascript>;");
Response.Write("function StartShowWait(){mydiv.style.visibility = 'visible'; ");
Response.Write("window.setInterval('ShowWait()',1000);}");
Response.Write("function HideWait(){mydiv.style.visibility = 'hidden';");
Response.Write("window.clearInterval();}");
Response.Write("StartShowWait();</script>");
Response.Flush();
}

在網頁aspx代碼<body>之後加入如下代碼:(目的隱藏等待效果)

padding: 0px" >
<script type="text/javascript">
HideWait();
</script>


C# 特殊字元處理

特殊字元處理

String.Replace 方法 (String, String)


https://msdn.microsoft.com/zh-tw/library/fk49wtc1(v=vs.110).aspx

C#.NET 創建資料夾


//using System;
//using System.IO;

class Test
{
    public static void Main()
    {
        // Specify the directory you want to manipulate.
        string path = @"c:\MyDir";

        try
        {
            // Determine whether the directory exists.
            if (Directory.Exists(path))
            {
                Console.WriteLine("That path exists already.");
                return;
            }

            // Try to create the directory.
            DirectoryInfo di = Directory.CreateDirectory(path);
            Console.WriteLine("The directory was created successfully at {0}.", Directory.GetCreationTime(path));

            // Delete the directory.
            di.Delete();
            Console.WriteLine("The directory was deleted successfully.");
        }
        catch (Exception e)
        {
            Console.WriteLine("The process failed: {0}", e.ToString());
        }
        finally {}
    }
}

C#.NET session 變數用法(紀錄)

ASP.NET session 變數的用法
建置網站時,一定會使用的程式語法
也就是 session。

當瀏覽器關閉時,該變數也會跟著消失。



//建立
Session.Add("sessionName", "123");
//or
Session["sessionName"] = "123";
//取值
string s = Session["sessionName"].ToString();
//移除
Session.Remove("sessionName");

C#.NET 編輯模式下gridview塞textBOX

gridview塞textBOX


protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        //判斷是否在編輯模式
        if ((e.Row.RowState & DataControlRowState.Edit) != 0)
        {
            //
            TextBox tb1 = (TextBox)e.Row.Cells[3].Controls[0];
            TextBox tb2 = (TextBox)e.Row.Cells[4].Controls[0];
            TextBox tb3 = (TextBox)e.Row.Cells[12].Controls[0];
           
           
            tb1.Attributes.Add("maxlength", "12");
            tb2.Attributes.Add("maxlength", "12");
            tb3.Attributes.Add("maxlength", "12");

         
            //
            tb1.Attributes.Add("class", "TextBox");
            tb2.Attributes.Add("class", "TextBox");
            tb3.Attributes.Add("class", "TextBox");
                   
           //屬性設置
            tb1.Width = 70;
            tb2.Width = 70;
            tb3.Width = 70;

            tb1.Enabled = false;
            tb7.Enabled = false;

        }

    }

C#.NET 匯出 NPOI參考(含客戶端)

NPOI模組 NPOI參考

//using NPOI;
//using NPOI.HSSF.UserModel; //Excel 2003檔案Model
//using NPOI.XSSFW.UserModel; //Excel 2007檔案Model
//using NPOI.SS.UserModel;



private void DataTableToExcelFile(DataTable dt)
        {
            //建立Excel 2003檔案
            IWorkbook wb = new HSSFWorkbook();
            ISheet ws;

    //建立Excel 2007檔案
            //IWorkbook wb = new XSSFWorkbook();
            //ISheet ws;

            if (dt.TableName != string.Empty)
            {
                ws = wb.CreateSheet(dt.TableName);
            }
            else
            {
                ws = wb.CreateSheet("Sheet1");
            }

            ws.CreateRow(0);//第一行為欄位名稱
            for (int i = 0; i < dt.Columns.Count; i++)
            {
                ws.GetRow(0).CreateCell(i).SetCellValue(dt.Columns[i].ColumnName);
            }

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                ws.CreateRow(i + 1);
                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    ws.GetRow(i + 1).CreateCell(j).SetCellValue(dt.Rows[i][j].ToString());
                }
            }

            FileStream file = new FileStream(AppDomain.CurrentDomain.BaseDirectory + "Person.xls", FileMode.Create);//產生檔案
            wb.Write(file);
            file.Close();
        }


// 寫入到客戶端
     MemoryStream ms = new MemoryStream();
            wb.Write(ms);
            Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}.xls", HttpUtility.UrlEncode("Excel" + "_" + DateTime.Now.ToString("yyyy-MM-dd"), System.Text.Encoding.UTF8)));
            Response.BinaryWrite(ms.ToArray());
            Response.Flush();

            Response.End();
            wb = null;
            ms.Close();
            ms.Dispose();

C#.NET NPIO GridView 匯出



//using NPOI;
//using NPOI.HSSF.UserModel;
//using NPOI.XSSF.UserModel;
//using NPOI.SS.UserModel;
//using System.IO;


        #region NPIO GridView 匯出

        public void GridToExcel(string fileName, DataGridView dgv)
        {
            if (dgv.Rows.Count == 0)
            {
                return;
            }
            SaveFileDialog sfd = new SaveFileDialog();
            sfd.Filter = "Excel 2003格式|*.xls";
            sfd.FileName = fileName + DateTime.Now.ToString("yyyyMMdd_ss");
            if (sfd.ShowDialog() != DialogResult.OK)
            {
                return;
            }
            HSSFWorkbook wb = new HSSFWorkbook();
            HSSFSheet sheet = (HSSFSheet)wb.CreateSheet(fileName);
            HSSFRow headRow = (HSSFRow)sheet.CreateRow(0);
            for (int i = 0; i < dgv.Columns.Count; i++)
            {
                HSSFCell headCell = (HSSFCell)headRow.CreateCell(i, CellType.String);
                headCell.SetCellValue(dgv.Columns[i].HeaderText);
            }
            for (int i = 0; i < dgv.Rows.Count; i++)
            {
                HSSFRow row = (HSSFRow)sheet.CreateRow(i + 1);
                for (int j = 0; j < dgv.Columns.Count; j++)
                {
                    HSSFCell cell = (HSSFCell)row.CreateCell(j);
                    if (dgv.Rows[i].Cells[j].Value == null)
                    {
                        cell.SetCellType(CellType.Blank);
                    }
                    else
                    {
                        if (dgv.Rows[i].Cells[j].ValueType.FullName.Contains("System.Int32"))
                        {
                            cell.SetCellValue(Convert.ToInt32(dgv.Rows[i].Cells[j].Value));
                        }
                        else if (dgv.Rows[i].Cells[j].ValueType.FullName.Contains("System.String"))
                        {
                            cell.SetCellValue(dgv.Rows[i].Cells[j].Value.ToString());
                        }
                        else if (dgv.Rows[i].Cells[j].ValueType.FullName.Contains("System.Single"))
                        {
                            cell.SetCellValue(Convert.ToSingle(dgv.Rows[i].Cells[j].Value));
                        }
                        else if (dgv.Rows[i].Cells[j].ValueType.FullName.Contains("System.Double"))
                        {
                            cell.SetCellValue(Convert.ToDouble(dgv.Rows[i].Cells[j].Value));
                        }
                        else if (dgv.Rows[i].Cells[j].ValueType.FullName.Contains("System.Decimal"))
                        {
                            cell.SetCellValue(Convert.ToDouble(dgv.Rows[i].Cells[j].Value));
                        }
                        else if (dgv.Rows[i].Cells[j].ValueType.FullName.Contains("System.DateTime"))
                        {
                            cell.SetCellValue(Convert.ToDateTime(dgv.Rows[i].Cells[j].Value).ToString("yyyy-MM-dd"));
                        }
                    }

                }

            }
            for (int i = 0; i < dgv.Columns.Count; i++)
            {
                sheet.AutoSizeColumn(i);
            }
            using (FileStream fs = new FileStream(sfd.FileName, FileMode.Create))
            {
                wb.Write(fs);
            }
            MessageBox.Show("匯出成功!", "匯出出提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }

        #endregion

2018年4月10日 星期二

C# Excel 讀取 NPOI 並轉 DataTable (紀錄)

C# Excel 讀取 NPOI 並轉 DataTable
NPOI載點:http://npoi.codeplex.com/
只限分析.xls格式

public DataTable ExcelForDataTable(string strFilePath)
{
    HSSFWorkbook wk;

    using (FileStream fs = new FileStream(strFilePath, FileMode.Open))
    {
        wk = new HSSFWorkbook(fs);
    }

    //取得sheet名稱
    HSSFSheet hst;
    hst = (HSSFSheet)wk.GetSheetAt(0);

    //單行單行的取得sheet理的資料
    HSSFRow hr;

    DataTable dt = new DataTable();

    for (int i = 0; i < hst.LastRowNum; i++)
    {
        hr = (HSSFRow)hst.GetRow(i);

        //加入DataTable欄位
        if (i == 0)
        {
            for (int a = 0; a < hr.LastCellNum; a++)
            {
                dt.Columns.Add(hr.Cells[a].ToString());
            }

        }

        //加入資料
        else
        {
            DataRow dr = dt.NewRow();
            for (int a = 0; a < hr.LastCellNum; a++)
            {
                dr[a] = hr.Cells[a];
            }
            dt.Rows.Add(dr);

        }

    }

    return dt;

}

C#.NET 寄信

寄信C#.net


//using System.Net.Mail;

 protected void Mailsend() {
        try
        {
                //String mailaddr;
                //mailaddr = "AAA@gmail.com,BBB@gmail.com";   //可新增多mail

                String filedate = DateTime.Now.ToString("yyyy.MM.dd");
                System.Net.Mail.SmtpClient MySmtp = new System.Net.Mail.SmtpClient("smtp.gmail.com", 587);
             
//設定你的帳號密碼
                MySmtp.Credentials = new System.Net.NetworkCredential("帳號", "密碼");
             
//Gmial 的 smtp 使用 SSL
                MySmtp.EnableSsl = true;
                //發送Email
                //MySmtp.Send("發送者<MY@gmail.com>", "收件者<CY@gmail.com>", "系統信件請勿直接回復", "2014-2-17");

                MailMessage mms = new MailMessage();

                // 指定寄信人
                mms.From = new MailAddress("MY@gmail.com", "寄信測試");

                // 新增收件人
                // mms.Bcc.Add(mailaddr); //多人mms.Bcc

mms.Bcc.Add("AAA@gmail.com");

                // 設定郵件屬性,在此設定為「高」
                mms.Priority = MailPriority.High;

                // 設定主旨
                mms.Subject = "寄信測試";

                // 設定信件內容

                mms.Body ="輸入Html語法 或 直接打字";

                // 設定信件內容是否為 Html 格式
                mms.IsBodyHtml = true;

                // 設定 DeliveryMethod 的傳送信件方法
                MySmtp.DeliveryMethod = SmtpDeliveryMethod.Network;

                // 送出郵件
                MySmtp.Send(mms);
                //  Page.ClientScript.RegisterStartupScript(this.GetType(), "MyScript", "alert('恭喜成功!');", true);
 
        }
        catch {
            Page.ClientScript.RegisterStartupScript(this.GetType(), "MyScript", "alert('恭喜失敗!');", true);
        }

C#.net 批次上傳 OR 選擇性上傳(紀錄)




 //批次上傳 OR 選擇性上傳
    protected void Img_upload2()
    {
        //--註解:網站上的目錄路徑。所以不寫磁碟名稱(不寫 “實體”路徑)。
        string saveDir = Server.MapPath("deerfarm/4046601/imges/");
        string appPath = Request.PhysicalApplicationPath;

        string tempfileName = "";
        System.Text.StringBuilder myLabel = new System.Text.StringBuilder();
        //如果事先宣告 using System.Text;
        //便可改寫成 StringBuilder myLabel = new StringBuilder();

        for (int i = 1; i <= Request.Files.Count - 1; i++)
        {
            FileUpload myFL = new FileUpload();
            myFL = (FileUpload)Page.FindControl("FileUpload" + i);

            if (myFL.HasFile)
            {
                string fileName = myFL.FileName;
                string pathToCheck = appPath + saveDir + fileName;

                //====================(Start)

                if (System.IO.File.Exists(pathToCheck))

                {
                    int my_counter = 2;
                    while (System.IO.File.Exists(pathToCheck))
                    {
                        //--檔名相同的話,目前上傳的檔名(改成 tempfileName),
                        //  前面會用數字來代替。
                        tempfileName = my_counter.ToString() + "_" + fileName;
                        pathToCheck = saveDir + tempfileName;
                        my_counter = my_counter + 1;
                    }

                    fileName = tempfileName;
                    Label1.Text += "<br>抱歉,您上傳的檔名發生衝突,檔名修改如下----" + fileName;

                }

                //====================(End)             

                //-- 完成檔案上傳的動作。
                string savePath =   saveDir + fileName;

                myFL.SaveAs(savePath);

                myLabel.Append("<hr>檔名---- " + fileName);

            }
        }

        Label2.Text = "上傳成功" + myLabel.ToString();


    }

C# DIV 控制

C# DIV 控制

-----HTML-------

<div id="myDiv" runat="server" > </div>


------C#.CS------

if (a=a)
{
  myDiv.Attributes["style"]="display:none"; //隐藏
}
else
{
  myDiv.Attributes["style"]="display:block"; //显示
}

C# oracle 連線失敗#1

C#  oracle 連線失敗#1
紀錄

C# 執行語法錯誤  注意分號";"


Jenkins-mail

參考:http://www.linuxea.com/1767.html 前置作業略過~有空再補 Mailer Plugin post { success { emailext ( subject: &...