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>