SHOWcode
2019年3月10日 星期日
C#.net Page_Load 前得知所按的BUTTON
C#.net Page_Load 前得知所按的BUTTON
參考:https://dotblogs.com.tw/jeff377/2008/03/17/1725
protected void Page_Init(object sender, EventArgs e)
{
string strs1 = "";
foreach (string str in Request.Form)
{
String ssss = str;
Control c = Page.FindControl(str);
if (c is Button)
{
Button imageb = (Button)c;
strs1 += imageb.ID;
}
}
string strs2 = strs1;
if (strs1 == "Button1") {
int xxx = int.Parse(Session["count"].ToString().Trim());
int add_xxx = xxx + 1;
Session["count"] = add_xxx.ToString().Trim();
//Label3.Text = (int.Parse(Label3.Text.ToString().Trim()) + 1).ToString().Trim();
Label3.Text = Session["count"].ToString().Trim();
}
}
2019年2月11日 星期一
MSSQL:使用SqlBulkCopy將資料批次寫入資料庫
MSSQL:使用SqlBulkCopy將資料批次寫入資料庫
原址:https://demo.tc/post/283
Oracle:https://blog.csdn.net/baidu_27474941/article/details/71709420
//一開始我們先產生一個DataTable來裝我們要寫入的資料 DataTable dt = new DataTable(); dt.Columns.Add("id", typeof(int)); dt.Columns.Add("name", typeof(string)); //因為SqlBulkCopy的猛就是大量的一次寫入,所以我們也來跑10萬筆吧 int i; for (i = 0; i < 100000; i++) { DataRow dr = dt.NewRow(); dr["name"] = i.ToString(); dt.Rows.Add(dr); } //宣告連結字串 SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ASPNETDBConnectionString1"].ConnectionString); conn.Open(); //宣告SqlBulkCopy using (SqlBulkCopy sqlBC = new SqlBulkCopy(conn)) { //設定一個批次量寫入多少筆資料 sqlBC.BatchSize = 1000; //設定逾時的秒數 sqlBC.BulkCopyTimeout = 60; //設定 NotifyAfter 屬性,以便在每複製 10000 個資料列至資料表後,呼叫事件處理常式。 sqlBC.NotifyAfter = 10000; sqlBC.SqlRowsCopied += new SqlRowsCopiedEventHandler(OnSqlRowsCopied); //設定要寫入的資料庫 sqlBC.DestinationTableName = "dbo.Table1"; //對應資料行 sqlBC.ColumnMappings.Add("id", "id"); sqlBC.ColumnMappings.Add("name", "name"); //開始寫入 sqlBC.WriteToServer(dt); } conn.Dispose(); } void OnSqlRowsCopied(object sender, SqlRowsCopiedEventArgs e) { Response.Write("---<br/>"); }
2019年2月10日 星期日
將字串轉換成Html編碼 /解碼 字串
摘要:將字串轉換成Html編碼 /解碼 字串
System.Web.HttpUtility.HtmlEncode(txtBox.Text);
System.Web.HttpUtility.HtmlDecode(txtBox.Text);
System.Web.HttpUtility.HtmlDecode(txtBox.Text);
2018年12月9日 星期日
C# ENTER 防呆
<form id="form1" runat="server" onkeypress="if (window.event.keyCode==13) return false;">
..
.
.
.
</form>
..
.
.
.
</form>
C# 正規 紀錄
public static bool isMatchNumber(string str)
{
return Regex.IsMatch(str, @"(^([0-9]*|\d*\d{1}?\d*)$)");
}
2018年11月8日 星期四
C# ajax 範例
C#.net ajax 範例
<asp:ScriptManager ID="ScriptManager" runat="server" />
<asp:UpdatePanel ID="UpdatePanel2" UpdateMode="Conditional" runat="server" >
<ContentTemplate>
<fieldset>
<legend>UpdatePanel content</legend>
<!-- Other content in the panel. -->
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
<table style="width: 1024px" align="center" >
<tr>
<td>
<nobr>
<table class="table table-bordered" id="maintable" rules="ALL" class="table" style="width: 100%; max-width: 1024px; border-color: black;" align="center">
<tr style=" display: none;">
<td style="width: 10%;"></td>
<td style="width: 10%;"></td>
<td style="width: 10%;"></td>
<td style="width: 10%;"></td>
<td style="width: 10%;"></td>
<td style="width: 10%;"></td>
<td style="width: 10%;"></td>
<td style="width: 10%;"></td>
<td style="width: 10%;"></td>
<td style="width: 10%;"></td>
</tr>
<asp:Label ID="Label2" runat="server" ></asp:Label>
</table>
</td>
</tr>
</table>
<input type="checkbox" checked="checked" />
<input id="ch" type="checkbox" />
<input type="checkbox" checked="checked" />
<asp:TextBox ID="TextBox23" runat="server"></asp:TextBox>
<asp:Button ID="Button2" runat="server" Text="Button"/>
<iframe id="iframesun" runat="server" style="width:100%;height:944px"></iframe>
</fieldset>
</ContentTemplate>
</asp:UpdatePanel>
2018年10月30日 星期二
ASP.NET TextBox控制項設置ReadOnly="true"後臺取不到值
原文連結
ASP.NET TextBox控制項設置ReadOnly="true"後臺取不到值
當TextBox設置了ReadOnly="true" 後,要是在前臺為控制項添加了值,後臺是取不到的,值為「空」
原理沒想通,說不清楚微軟是出於什麼考慮的,
不過有時是要我們能通過前臺腳本來填充值,並不希望使用者修改其控制項內容,這時就比較尷尬了。
剛開始是換成Html 裡的 <input type="text" readonly="readonly" > ,不過後來發現這個工作量是很大的,
所以網上搜了下,沒找出TextBox ReadOnly="true" 頁面填充值取不到的原因,不過問題還算解決了。
正文:
出於vs2005對頁面代碼的規範與安全,個人意見是使用第二種方法
知道為什麼TextBox設置了ReadOnly屬性後,取不到值原理的,給下說明,謝謝啦!
在.NET 2.0 下,當頁面上的某個TextBox 設置了屬性ReadOnly="True"時,通過用戶端腳本給其賦值後,在後臺代碼中訪問其Text屬性卻無法獲得該值。經過嘗試,發現可以通過如下的方式解決這個問題:
方法一:
不設置ReadOnly屬性,通過onfocus=this.blur()來類比,如下:
<asp:TextBox ID="TextBox1" runat="server" onfocus=this.blur()></asp:TextBox>
在此情況下,當文字方塊獲得焦點時便立刻失去,所以也無法手動修改其內容,能夠類比ReadOnly,在後臺代碼中也能通過Text屬性,正常獲取通過腳本在用戶端設置的值;
方法二:
設置了ReadOnly屬性後,通過Request來取值,如下:
前臺代碼:
<asp:TextBox ID="TextBox1" runat="server" ReadOnly="True" ></asp:TextBox>
後臺代碼:
string Text = Request.Form["TextBox1"].Trim();
方法三:
在Page_Load()正設置文字方塊的唯讀屬性,在前臺不設置。就能正常讀取,如下:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
TextBox1.Attributes.Add("readonly","true");
}
}
2018年10月2日 星期二
C# 取得檔案最後修改時間
foreach (string fname in System.IO.Directory.GetFileSystemEntries(@"C:\Users\joshs"))
{
//if (fname.IndexOf(".gif") > 0) {
//MessageBox.Show("檔案建立日期" + fname.ToString(), "FileInfo");
// MessageBox.Show("檔案建立日期" + fname.ToString(), "FileInfo");
//}
MessageBox.Show("檔案最後修改時間:" + File.GetLastWriteTime(fname).ToString());
}
2018年10月1日 星期一
字串 取值方法(第二階段) Class 取得 C#.NET 控制項
字串 取值方法(第二階段) 先在在 其他NET 建置laceHolder
#region BUTTON
protected void lbtn_Click(object sender, EventArgs e)
{
Page page = (Page)System.Web.HttpContext.Current.Handler; //Page 給 class 這是重點
Button lbtn = (Button)sender;
String buttonid = lbtn.ID.ToString();//button 按鈕ID
Label labtn = (Label)page.FindControl("lb_func2"); //取得控項
TextBox txttn = (TextBox)page.FindControl("txt_func2");
String mail_check = fun_sg_mail(); //
if (mail_check == "success") {
page.ClientScript.RegisterStartupScript(this.GetType(), "MyScript", "alert('信件寄出');", true);
}
else {
page.ClientScript.RegisterStartupScript(this.GetType(), "MyScript", "alert('通報信件尚未寄出,麻煩幫忙管理員,謝謝');", true);
}
}
#endregion
字串 調用方法(第一階段)
public static object callFunc(string funcName)
{
//反射獲取 命名空間+類名稱
//using System.Reflection;
String TXSR = funcName;
string className = "activefuction";
string methodName = funcName; //傳遞参数
// Object[] paras = new Object[] { "string" };
var t = Type.GetType(className);
object obj = Activator.CreateInstance(t);
try
{
#region 方法一 //直接调用
MethodInfo method = t.GetMethod(methodName);
//method.Invoke(obj, paras);
return method.Invoke(obj, null);
// return method.Invoke(obj, null);
#endregion
#region 方法二
//MethodInfo[] info = t.GetMethods();
//for (int i = 0; i < info.Length; i++)
//{
// var md = info[i]; //方法名
// string mothodName = md.Name; //参数集合
// ParameterInfo[] paramInfos = md.GetParameters(); //方法名相同且參數個數一樣
// if (mothodName == methodName && paramInfos.Length == paras.Length)
// {
// md.Invoke(obj, paras);
// }
//}
#endregion
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
訂閱:
文章 (Atom)
Jenkins-mail
參考:http://www.linuxea.com/1767.html 前置作業略過~有空再補 Mailer Plugin post { success { emailext ( subject: ...
-
ASP.NET刷新頁面的六種方法 第一: private void Button1_Click( object sender, System.EventArgs e ) { Response.Redirect( Request.Url.ToSt...
-
foreach (string fname in System.IO.Directory.GetFileSystemEntries(@"C:\Users\joshs")) { //if (fn...