2013年9月26日 星期四

C# Regex.Replace 刪除Html字串

 其實查了很多Regex.Replace 的資料

但到最後還是搞不太清楚他裡面的亂碼在做什麼

只好拿別人已經寫好的東西來拼湊用一用

string[] reserve = { "EM" };

string content = Regex.Replace(content, String.Format("<(?!{0}).*?>", string.Join("", reserve)), String.Empty);

陣列reserve裡面所放的是要保留的Html語法字串

若想要一個都不留的話

我在這裡都用一個偷吃步的方法

直接在reserve裡面下一個根本不會出現的詞彙

這樣Html語法就可以被削的乾乾淨淨了

content是要進行字串處理的字串

引用自:http://www.dotblogs.com.tw/hunterpo/archive/2010/11/26/19732.aspx

C# 文字 寫入 TXT

        StreamWriter sw = new StreamWriter(@"C:\Users\cody\Documents\1.txt");
        sw.WriteLine("abc");
        sw.Close();

記得先創好檔案路徑

還有要

Using System.IO;

Resource interpreted as Image but transferred with MIME type application/octet-stream:

如果使用VS2010開發ASP.NET 
當你有使用到文件檔中的PNG圖片時
很有可能會出現以下的錯誤訊息
Resource interpreted as Image but transferred with MIME type application/octet-stream:
這是因為使用了VS的IIS所導致
但並不知道程式會受到什麼影響
解決方法就將此網頁直接價在本台主機的IIS上就不會有此錯誤產生

2013年9月23日 星期一

Html 傳值的幾種方式

簡單介紹一下Html傳值得幾種寫法 ,網頁大致來分有兩種傳值方式 "Get" 和 "Post"

先從 "Post" 部分開始介紹:

        <form id="Post" method="post"> 
            <input type="text" runat="server" id="Data"> 
            <input id="button1" type="button" value= "java" onclick="post();" runat="server"> 
        </form>

        <script language="javascript">
            function post() {
                Post.action = "NextPage.aspx";
                Post.submit();
            } 
        </script>

接值頁面

string data=Request.Form["Data"].ToString();

另一種不用Javascript 使用Name 來接值的方式

            <form  method="POST" action="NextPage.aspx"> 
   <p><input type="text" name="Textbox"></p> 
   <p><input type="submit" value="確定" name="submit2"></p> 
   </form> 

接值頁面

 string a = Request.Form["Textbox"].ToString();

使用 "Get" 方式

            string id=123;
            string passwod=123;
         
            Response.Redirect("NextPage.aspx?id=" + id + "&password=" + password);

接值頁面

            string id=Request.QueryString[" id"].ToString();
            string password=Request.QueryString[" password"].ToString();

另一種用 " Get" 接值的方式

<select id="childrenValue" name="childrenValue">
                             <%= childrenValue %>
                        </select>

<input id="Button1" type="button" value="123" onclick="htmlchange()"  />

 function htmlchange() {

//childrenValue 為下拉式選單

        if ($("#childrenValue").val() == "請選擇") {
            alert("尚未選擇結點");
        }
        else {
            window.location.href = "Management/Node/CreateNewLevel.aspx?childrenValue=" + $("#childrenValue").val();
        }

    }

接值頁面

 ParentIdLabel.Text = Request.QueryString["childrenValue"];

在這邊可以注意到 "Post" 的接值方式是使用 Request.Form "Get" 是使用 Request.QueryString

那如果遇到本頁的後端想要拿到本頁前端的某一個 input type = text 要怎麼辦呢?

<input type="text" name="TextBox" value="123">

那本頁後端就可以直接使用name的變數來抓取(注意不是使用Id)

 string id = Request["TextBox"];


2013年9月11日 星期三

C# DataTable 使用方式

    public class takefile
    {
        SqlConnection conn = new SqlConnection("server = 127.0.0.1 ; database = LWS; uid = sa ; pwd = sa");
        SqlCommand cmd = new SqlCommand();

        public string[] takefilename(string filename)
        {
            //takefileBean takefilebean = new takefileBean();
            conn.Open();
            cmd.Connection = conn;
            cmd.CommandText = "SELECT _id, APP FROM " + filename ;

            //cmd.Parameters.Clear();
            //cmd.Parameters.AddWithValue("@filename", filename);
            SqlDataAdapter sd = new SqlDataAdapter(cmd.CommandText, conn);
            DataTable dt = new DataTable();
            sd.Fill(dt);

            string[] takefilename = new string[dt.Rows.Count];

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                takefilename[i] = dt.Rows[i][0].ToString() + "|" + dt.Rows[i][1].ToString();
            }

            conn.Close();
            return takefilename;
        }

       可以看到SqlDataAdapter會將讀到的資料全部放在DataTable中

       之後的dt.Rows[i][0].ToString()第一個[]代表Row為資料的筆數

       第二個[]代表Column為資料的欄位

       簡單來說今天我們只從資料庫領取ID這個欄位

       所以Column的欄位數只有1  所以在這裡永遠為0

       如果今天我們從資料庫再多領取Datetime不同的資料

       欄位數請自己往上計算    先領取的會再比較前面的欄位

       Row的欄位數則是看你的資料庫存有幾筆資料而定

       最後回傳一個二維的陣列出來

C# 運用字串進行切割

字串.ToString().Split(new string[] { "@;@" , "12" }, StringSplitOptions.RemoveEmptyEntries);

運用此方法可以進行自串的判斷切割  " " 裡面是要進行切的字串  運用數個切割可以確保一定

切到你想要的字串  最後StringSplitOptions.RemoveEmptyEntries可以把切出來的空格直接刪除

C# ASP Calendar 行事曆 紀錄某日日期事件方式

public partial class TestPage : System.Web.UI.Page

{

    List<ScheduleEvent> lst;
    public class ScheduleEvent
    {

        public string EventName;
        public DateTime Date;
        public Color EventColor;
     

    }

    protected override void OnLoad(EventArgs e)

    {

        base.OnLoad(e);

        //loading my list with some sample events.

        lst = new List<ScheduleEvent>();

        lst.Add(new ScheduleEvent {

            Date = new DateTime(2011, 5, 17),

            EventColor = Color.Lime,

            EventName = "Arun's BirthDay" });

        lst.Add(new ScheduleEvent {

            Date = new DateTime(2011, 5, 31),

            EventColor = Color.Red,

            EventName = "Rohan's BirthDay" });

        //Register day

        Calendar1.DayRender += new DayRenderEventHandler(Calendar1_DayRender);

    }

    void Calendar1_DayRender(object sender, DayRenderEventArgs e)

    {

        var item=lst.Where(evnt => evnt.Date.Date.Equals(e.Day.Date)).FirstOrDefault();

        if(item!=null)

        {

            e.Cell.BackColor = item.EventColor;

            e.Cell.ToolTip =  item.EventName;
            e.Cell.Text = "<a href=" + e.SelectUrl + ">" + e.Day.DayNumberText + "</a>";  //調整滑鼠移到上方所顯示的內容

        }

    }

}
    用此方式可以讓Asp行事曆裡面的元件更改你所紀錄日期的背景 底色  自體 或顯示的字樣
    下列網址是Calendar屬性更改的參考網頁
    http://msdn.microsoft.com/zh-tw/library/system.web.ui.webcontrols.calendar_properties.aspx

抓取最近一筆存入資料庫的資料

 cmd.CommandText ="SELECT IDENT_CURRENT('WebUrl') AS Current_Identity";

 string id = cmd.ExecuteScalar().ToString();

運用此方法可以抓到最近一筆存入的資料的ID是多少

可以利用此方式當作上傳檔案的檔案夾名稱  這樣就不會有上傳檔案卻有檔案名稱重複的問題

以下是資料庫存入完整程式碼

            conn.Open();
            cmd.Connection = conn;
            cmd.CommandText = "INSERT INTO WebUrl(Title, Picture, Url, IsActived, PublishUpDate, PublishDownDate, CreateDate, ModifyDate) "
                            + "VALUES (@Title, @Picture, @Url, @IsActived, @PublishUpDate, @PublishDownDate, @CreateDate, @ModifyDate);"
                            + "SELECT IDENT_CURRENT('WebUrl') AS Current_Identity";

            cmd.Parameters.Clear();
            cmd.Parameters.AddWithValue("@Title", WebUrlbean.Title);
            cmd.Parameters.AddWithValue("@Picture", WebUrlbean.Picture);
            cmd.Parameters.AddWithValue("@Url", WebUrlbean.Url);
            cmd.Parameters.AddWithValue("@IsActived", WebUrlbean.IsActived);
            cmd.Parameters.AddWithValue("@PublishUpDate", WebUrlbean.PublishUpDate);
            cmd.Parameters.AddWithValue("@PublishDownDate", WebUrlbean.PublishDownDate);
            cmd.Parameters.AddWithValue("@CreateDate", DateTime.Now);
            cmd.Parameters.AddWithValue("@ModifyDate", DateTime.Now);

            string id = cmd.ExecuteScalar().ToString();
            conn.Close();
            return id;

2013年9月7日 星期六

New Life

        終於從碩士畢業了,離開原有的生活圈多少有點感傷,最後一次進入校園和打工地方感覺十分的特別,雖然碩士只有兩年,但跟同學之間的友誼感覺不是前原本大學能夠比擬的,沒有心機的相處感覺真的是很難得,話說每天到學校也只有坐在實驗室的位置打瞌睡,但對於那些在看電影時其他地方發出的聊天打鬧聲多少還是有些懷念,正所謂無聊的小事雖然不會特別去記憶,但總是能在回憶中繚繞盤旋。打工雖然只做了半年,但在跟那些不熟同事道別的當下還是多少有點感傷,或許被那種人之間純真相處感受給打動。
        任何東西都能形容一個我,但回憶並不在其中,感傷歸感傷,人生還是要不停的往前。這家公司目前給我的感覺還算不錯,不管是人之間的相處,員工的訓練,給的工作量都在我的理想範圍內,在適應工作生活後在程式能力的方面會比現在更有進展。
        畢竟基於目前是C#新手的關係。我將會把我在公司所學到的新東西,實用的資訊給記錄在這,除了程式外,每個星期去主菜課程所學的食材料理方式,另外時間自己所料理的食物都給記錄下來,看過的電影也會一一的推薦。
        最後........
Welcome to my New Life

2013年9月2日 星期一

Asp 的List簡易Json用法

          public class fff
            {
                public string gg = "";
                public string ff = "";
            }

            public Class1 getdata(string )
            {
           
                List<fff> fff = new List<fff>();

                fff dd = new fff();

                dd.ff = "fff";

                fff.Add();
            }

        利用此簡易方法可以很輕鬆的達到Json(用字串來當儲存陣列名稱)的效果