2014年11月27日 星期四

order by datetime 只判斷年月日 不看時分秒



SELECT *FROM Attendance WHERE Swt BETWEEN '2014-08-02 00:00:00' AND '2014-08-02 23:59:59' order by convert(varchar(10),Swt,112) ASC, Mid ASC


Swt是個datetime的資料 有年月日時分秒

ASC 遞增排序
DESC遞減排序

2014年11月13日 星期四

ADO使用

InterfaceRepository<Labor> repository = new LaborRepository();
            var customers = repository.Select();
            var customer = customers.Where(
                           c => c.BIid == Convert.ToInt32(2)).First();//數字代表ID
            Label1.Text = customer.Cname;
            customers = null;

以上是 抓出單項數值的ADO寫法
--------------------------------------------------------------------------------

InterfaceRepository<Labor> repository = new LaborRepository();
            this.gv.DataSource = repository.Select();
            this.gv.DataBind();
            repository = null;

以上是把資料整個丟進gridview 的寫法


---------------------------------------------------------------------------------

ADO基本架構

Models / customer.cs  //放資料庫的資料
 ----------------------------------
public class customer
    {
        public int Id { get; set; }
        public string Username { get; set; }
        public string Password { get; set; }
        public string Email { get; set; }
    }
-----------------------------------
---------------------------------------------------------------------------------------------------------
Repository / CustomerRepository.cs   // 主要程式區

------------------------------------
   public void Create(customer Model)  //新增
        {
            SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["Test1113_DataSource"].ConnectionString);
            con.Open();

            SqlCommand cmd = new SqlCommand();
            cmd.Connection = con;
            cmd.CommandText = "INSERT customer (Id,Username,Password,Email) " +
                              "VALUES (@Id,@Username,@Password,@Email)";
            cmd.Parameters.AddWithValue("@Id", Model.Id);
            cmd.Parameters.AddWithValue("@Username", Model.Username);
            cmd.Parameters.AddWithValue("@Password", Model.Password);
            cmd.Parameters.AddWithValue("@Email", Model.Email);
            if (cmd.ExecuteNonQuery() == 0)
            {
                // handling data errors.
            }
            con.Close();
        }

        public int GetLatestIdentity() //抓最後一個id並+1存回去
        {
            SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["Test1113_DataSource"].ConnectionString);
            con.Open();

            SqlCommand cmd = new SqlCommand();
            cmd.Connection = con;
            cmd.CommandText = "SELECT ISNULL(MAX(Id), 0) + 1 FROM customer";
            int id = Convert.ToInt32(cmd.ExecuteScalar());
            con.Close();
            return id;
        }
------------------------------------
---------------------------------------------------------------------------------------------------------
Repository / InterfaceCustomer.cs     //介面用

------------------------------------
    interface InterfaceCustomer<CModel>
    {
        void Create(CModel Model);
        int GetLatestIdentity();
    }
------------------------------------

2014年11月11日 星期二

SQL連線

string query = "SELECT Cname,Ename FROM BI";
            string strConnect = ConfigurationManager.ConnectionStrings["ERP_DataSource"].ConnectionString;

            SqlConnection sconn = new SqlConnection(strConnect);
            SqlCommand cmd = new SqlCommand(query, sconn);
            SqlDataAdapter da = new SqlDataAdapter();
            da.SelectCommand = cmd;
            DataTable DT = new DataTable();
            da.Fill(DT);
            if (DT.Rows.Count > 0)
            {
                gv.ID = DT.TableName;
                gv.AllowPaging = false;
                gv.AllowSorting = true;
                gv.AutoGenerateColumns = false;
                foreach (DataColumn c in DT.Columns)
                {
                    BoundField bf = new BoundField();
                    bf.DataField = c.ColumnName;
                    bf.HeaderText = c.ColumnName;
                    gv.Columns.Add(bf);
                }
                gv.Visible = true;
                gv.DataSource = DT;
                gv.DataBind();
            }

以上的程式 query可以更改select句
然後把讀到的值都丟到 名為gv的這個gridview裡
-----------------------------------------------------------
-----------------------------------------------------------
 string whos = DDL03.SelectedValue;
            string cs = ConfigurationManager.ConnectionStrings["ERP_DataSource"].ConnectionString;
            string qs = "SELECT * FROM BI WHERE Cname = N'" + whos + "'";
            //SqlConnection連接資料庫
            using (SqlConnection cn = new SqlConnection(cs))
            {
                cn.Open();
                //引用SqlCommand物件
                using (SqlCommand command = new SqlCommand(qs, cn))
                {
                    //搭配SqlCommand物件使用SqlDataReader
                    using (SqlDataReader dr = command.ExecuteReader())
                    {
                        while ((dr.Read()))
                        {
                            //判斷是否空值
                            if (!dr[0].Equals(DBNull.Value))
                            {
                                LabTast.Text = dr[0].ToString();
                            }
                        }
                    }
                }
            }


以上的程式 可以在DDL03這個表單選取人名
把抓到的值丟進dr[]陣列裡 就可以逐一抓出來
-----------------------------------------------------------
-----------------------------------------------------------
select 語法:

SELECT name From 資料表 WHERE name = '袋鼠'
把叫袋鼠的名子給找出來
如果你發現WHERE中文怎麼都出不來 那是編碼問題'之前加個N
SELECT name From 資料表 WHERE name = N'袋鼠'

當"藍色"表的資料id要抓紅色資料表的中文可以這樣下
SELECT LBname FROM BI AS P JOIN Loan_Bank AS S ON P.LBid = S.LBid

2014年11月10日 星期一

JQuery 排版問題

<!--順帶一提 掛JQ是常識 不要沒掛說跑不出來.....-->

可以解決Button跟著畫面放太大的情形:
data-inline="true"   //內文多長button就多大

---------------------------------------------------------

分版用 a就會有ab兩格,b就會有abc三格 以此類推:
    <div class="ui-grid-a">
        <div class="ui-block-a">
            A
        </div>
        <div class="ui-block-b">
            B
        </div>
    </div>


2014年10月16日 星期四

Session

    protected void Button2_Click(object sender, EventArgs e)
    {
        if (Session["age"] != null)
        {
            Response.Write("You are " + Session["age"] + " years old<br/>");
            Response.Write("Session ID: " + Session.SessionID.ToString() + "<br/>");
            Response.Write("Time out: " + Session.Timeout.ToString() + "<br/>");
        }
        else
            Response.Write("Session not exist!");

    }

    protected void Button1_Click(object sender, EventArgs e)
    {
       
        Session["age"] = TextBox1.Text;
       
        Session.Timeout = 1;
    }

2014年10月15日 星期三

鼯鼠!!


螣蛇無足而飛,鼯鼠五技而窮。-荀子‧勸學篇

五技,謂能飛不能上屋,能緣不能窮木,能游不能渡谷,能穴不能掩身,能走不能先人。


但我有不一樣的看法 牠飛不到屋上 牠沒法爬到樹頂

但牠一樣可以先飛到一半後再爬 仍舊可以"不斷往上"


牠跑不過別人 牠能游泳卻無法游過溪谷

但牠趕路時受到地形的限制比較小 可以"一直走下去"


能挖洞但卻挖不出可以藏起來的洞

一日不行 那就二日 二日不行 三日 只要"不放棄" 怎會達不到目標呢


這就是我的網誌標題是用鼯鼠的原因

只是單純雜學的確不好

但只要把你的所學 活用 組合

不要放棄 一直往上爬 相信最後會看到自己的一片天


在現在這個"老闆要你什麼都要會"的社會裡

只當個螣蛇已不足以生存

讓我們一起當個"特質系"的鼯鼠吧!!