字串的宣告
string 變數 = string.Empty;
string 變數 = "abcdefg";

Session內容的取出
string 變數 = (string)Session["名稱"];

網頁元件內容的取出
string 變數 = ((TextBox)網頁元件的ID).Text;
string 變數 = ((DropDownList)網頁元件的ID).SelectedItem.Value;
string 變數 = ((DropDownList)網頁元件的ID).SelectedItem.Text;

日期時間格式的使用
DateTime DateTime1 = DateTime.Parse("2011-05-16 07:30:00");
DateTime DateTime2 = DateTime.Parse("2011-05-16 08:00:00");
TimeSpan t1 = new TimeSpan(DateTime1.Ticks);
TimeSpan t2 = new TimeSpan(DateTime2.Ticks);
double ts = t2.Subtract(t1).TotalHours; //ts=0.5(小時)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Form1 : System.Web.UI.Page
{
    DBmssql db1 = new DBmssql();
    string url = "Form1List.aspx";
    string op = "";

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            txtAccount.Text = (string)Session["ec_userid"];
            initProjectList(drpProject);
            initTimeList();

            lblEditTag.Text = "";
            lblCount.Text = "";

            //增加opreation的tag,可以讓一個asp網頁處理兩種相似的功能,例如:新增and修改
            op = (string)Request["op"];
            if (op == "Edit")
            {
                initTable();
                lblEditTag.Text = (string)Request["op"];
                lblCount.Text = (string)Request["id"];
            }
        }
    }

    public void initProjectList(object sender)
    {
        System.Data.DataTable dt1 = new System.Data.DataTable();
        string drpValue = null;
        string drpText = null;

        ((DropDownList)sender).Items.Clear();
        ((DropDownList)sender).Items.Add(new ListItem("(請選擇工程專案)", ""));

        dt1 = db1.GetDataTable("SELECT id,cname FROM 專案列表 ORDER BY id DESC");
        for (int i = 0; i <= dt1.Rows.Count - 1; i++)
        {
            drpValue = dt1.Rows[i]["id"].ToString().Trim();
            drpText = dt1.Rows[i]["cname"].ToString().Trim();
            ((DropDownList)sender).Items.Add(new ListItem(drpText, drpValue));
        }
    }

    public void initTimeList()
    {
        drpHourStart.Items.Clear();
        drpHourEnd.Items.Clear();
        drpMinuteStart.Items.Clear();
        drpMinuteEnd.Items.Clear();

        for (int i = 0; i <= 23; i++)
        {
            drpHourStart.Items.Add(string.Format("{0:00}", i));
            drpHourEnd.Items.Add(string.Format("{0:00}", i));
        }

        for (int i = 0; i <= 50; i=i+10)
        {
            drpMinuteStart.Items.Add(string.Format("{0:00}", i));
            drpMinuteEnd.Items.Add(string.Format("{0:00}", i));
        }
    }

    public void initTable()
    {
        string count = (string)Request["id"];
        System.Data.DataTable dt1 = new System.Data.DataTable();
        dt1 = db1.GetDataTable("SELECT * FROM 每日工時表 WHERE count = '" + count + "'");
        if (dt1.Rows.Count == 1)
        {
            txtAccount.Text = dt1.Rows[0]["account"].ToString().Trim();
            txtDate.Text = string.Format("{0:yyyy/MM/dd}", dt1.Rows[0]["WorkDate"]);

            string pid = dt1.Rows[0]["pid"].ToString().Trim();
            for (int i = 0; i < ((DropDownList)drpProject).Items.Count; i++ )
            {
                if (((DropDownList)drpProject).Items[i].Value == pid)
                    ((DropDownList)drpProject).Items[i].Selected = true;
            }

            TimeSpan t1 = new TimeSpan((DateTime.Parse(dt1.Rows[0]["StartTime"].ToString())).Ticks);
            TimeSpan t2 = new TimeSpan((DateTime.Parse(dt1.Rows[0]["EndTime"].ToString())).Ticks);

            string value = "";
            value = string.Format("{0:00}", t1.Hours);
            for (int i = 0; i < ((DropDownList)drpHourStart).Items.Count; i++)
            {
                if (((DropDownList)drpHourStart).Items[i].Text == value)
                    ((DropDownList)drpHourStart).Items[i].Selected = true;
            }
            value = string.Format("{0:00}", t1.Minutes);
            for (int i = 0; i < ((DropDownList)drpMinuteStart).Items.Count; i++)
            {
                if (((DropDownList)drpMinuteStart).Items[i].Text == value)
                    ((DropDownList)drpMinuteStart).Items[i].Selected = true;
            }
            value = string.Format("{0:00}", t2.Hours);
            for (int i = 0; i < ((DropDownList)drpHourEnd).Items.Count; i++)
            {
                if (((DropDownList)drpHourEnd).Items[i].Text == value)
                    ((DropDownList)drpHourEnd).Items[i].Selected = true;
            }
            value = string.Format("{0:00}", t2.Minutes);
            for (int i = 0; i < ((DropDownList)drpMinuteEnd).Items.Count; i++)
            {
                if (((DropDownList)drpMinuteEnd).Items[i].Text == value)
                    ((DropDownList)drpMinuteEnd).Items[i].Selected = true;
            }
        }
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        lt.Text = "";
            
        string MsgStr = string.Empty;

        string account = ((TextBox)txtAccount).Text;
        if (account == "")
            MsgStr = MsgStr + "使用者帳號獲取失敗。";

        string pid = ((DropDownList)drpProject).SelectedItem.Value;
        if (pid == "")
            MsgStr = MsgStr + "請選擇工程專案。";

        string strDate = ((TextBox)txtDate).Text;
        string strTimeStart = drpHourStart.SelectedItem.Text + ":" + drpMinuteStart.SelectedItem.Text + ":00";
        string strTimeEnd = drpHourEnd.SelectedItem.Text + ":" + drpMinuteEnd.SelectedItem.Text + ":00";
        DateTime TimeStart = DateTime.Parse(strDate + " " + strTimeStart);
        DateTime TimeEnd = DateTime.Parse(strDate + " " + strTimeEnd);
        TimeSpan t1 = new TimeSpan(TimeStart.Ticks);
        TimeSpan t2 = new TimeSpan(TimeEnd.Ticks);
        TimeSpan tNow = new TimeSpan(DateTime.Now.Ticks);
        double ts = t2.Subtract(t1).TotalHours;
        double ta = tNow.Subtract(t2).TotalDays;

        if (ts <= 0) {
            MsgStr = MsgStr + "起迄時間錯誤。";
            //lt.Text = t2.ToString() + "-" + t1.ToString() + "=" + ts.ToString();
        }
        if (ta > 3) {
            MsgStr = MsgStr + "超過網路申報時間,請改用紙本申報。";
            //lt.Text = tNow.ToString() + "-" + t2.ToString() + "=" + ta.ToString();
        }
        
        if (MsgStr != string.Empty)
        {
            string sScript = string.Empty;
            sScript = "alert('" + MsgStr + "')";
            this.ClientScript.RegisterStartupScript(this.GetType(), "error", sScript, true);
            return;
        }

        System.Data.DataTable dt1 = new System.Data.DataTable();
        string sqlstr = "";
        op = ((Label)lblEditTag).Text;
        string count = ((Label)lblCount).Text;
        try
        {
            //增加opreation的tag,可以讓一個asp網頁處理兩種相似的功能,例如:新增and修改
            if (op == "")
            {
                sqlstr = " INSERT INTO 每日工時表(account, pid, WorkDate, StartTime, EndTime) ";
                sqlstr += " VALUES('" + account + "','" + pid + "','" + strDate + "','" + strTimeStart + "','" + strTimeEnd + "')";
                db1.ExecuteCmd(sqlstr);
                lt.Text = "<script language=javascript>alert('新增成功。');location.href='" + url + "';</script>";
            }
            if (op == "Edit")
            {
                sqlstr = " INSERT INTO 每日工時表(account, pid, WorkDate, StartTime, EndTime) ";
                sqlstr += " VALUES('" + account + "','" + pid + "','" + strDate + "','" + strTimeStart + "','" + strTimeEnd + "')";
                sqlstr = " UPDATE 每日工時表 SET " ;
                sqlstr += " account='" + account + "'";
                sqlstr += ",pid='" + pid + "'";
                sqlstr += ",WorkDate='" + strDate + "'";
                sqlstr += ",StartTime='" + strTimeStart + "'";
                sqlstr += ",EndTime='" + strTimeEnd + "'";
                sqlstr += " WHERE count='" + count + "'";
                db1.ExecuteCmd(sqlstr);
                lt.Text = "<script language=javascript>alert('修改成功。');location.href='" + url + "';</script>";
            }
        }
        catch (Exception ex)
        {
            lt.Text = "操作失敗。<BR>" + ex.Message.ToString() + "<BR>" + sqlstr;
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Form1List : System.Web.UI.Page
{
    DBmssql db1 = new DBmssql();
    
    protected void Page_Load(object sender, EventArgs e)
    {
        //避免網頁有submit的動作時,重複執行init的function,造成使用者選取or填寫的資料被reset。
        if (!IsPostBack)
        {
            initList();
            initSerachItem();
        }
    }

    protected void Button2_Click(object sender, EventArgs e)
    {
        Response.Redirect("Form1.aspx"); //網頁重新導向
    }

    public void initList()
    {
        if (drpType.SelectedItem.Value == "人員")
        {
            initMemberList(drpKeyWord);
            ((CheckBox)ckbTag).Enabled = false;
        }
        else
        {
            initProjectList(drpKeyWord);
            ((CheckBox)ckbTag).Enabled = true;
        }
    }

    public void initProjectList(object sender)
    {
        System.Data.DataTable dt1 = new System.Data.DataTable();
        string drpValue = null;
        string drpText = null;

        ((DropDownList)sender).Items.Clear();
        ((DropDownList)sender).Items.Add(new ListItem("(請選擇工程專案)", ""));

        dt1 = db1.GetDataTable("SELECT id,cname FROM 專案列表 ORDER BY id DESC");
        for (int i = 0; i <= dt1.Rows.Count - 1; i++)
        {
            drpValue = dt1.Rows[i]["id"].ToString().Trim();
            drpText = dt1.Rows[i]["cname"].ToString().Trim();
            ((DropDownList)sender).Items.Add(new ListItem(drpText, drpValue));
        }
    }

    public void initMemberList(object sender)
    {
        System.Data.DataTable dt1 = new System.Data.DataTable();
        string drpValue = null;
        string drpText = null;

        ((DropDownList)sender).Items.Clear();
        ((DropDownList)sender).Items.Add(new ListItem("(請選擇人員)", ""));

        dt1 = db1.GetDataTable("SELECT account,name FROM 人員 ORDER BY name");
        for (int i = 0; i <= dt1.Rows.Count - 1; i++)
        {
            drpValue = dt1.Rows[i]["account"].ToString().Trim();
            drpText = dt1.Rows[i]["name"].ToString().Trim();
            ((DropDownList)sender).Items.Add(new ListItem(drpText, drpValue));
        }
    }

    //使用程式碼指派SqlDataSource的SelectCommand,可以活用SQL WHERE語法
    public void initSerachItem()
    {
        string account = (string)Session["ec_userid"];
        string pid = ((DropDownList)drpKeyWord).SelectedItem.Value;
        string strSQL = string.Empty;
        Boolean tag = ((CheckBox)ckbTag).Checked;

        if (drpType.SelectedItem.Value == "人員")
        {
            if (((DropDownList)drpKeyWord).SelectedIndex != 0)
                account = ((DropDownList)drpKeyWord).SelectedItem.Value;
            strSQL = "SELECT [每日工時表].*, CONVERT(varchar(2), FLOOR(DATEDIFF(minute, StartTime, EndTime) / 60)) + ':' + CONVERT(varchar(2), DATEDIFF(minute, StartTime, EndTime) % 60) AS Diff FROM [每日工時表] WHERE ([account] = '" + account + "') ORDER BY [count] DESC";
        }
        else
        {
            if (((DropDownList)drpKeyWord).SelectedIndex != 0)
            {
                if(tag)
                    strSQL = "SELECT [每日工時表].*, CONVERT(varchar(2), FLOOR(DATEDIFF(minute, StartTime, EndTime) / 60)) + ':' + CONVERT(varchar(2), DATEDIFF(minute, StartTime, EndTime) % 60) AS Diff FROM [每日工時表] WHERE ([account]='" + account + "' AND [pid]='" + pid + "') ORDER BY [count] DESC";
                else
                    strSQL = "SELECT [每日工時表].*, CONVERT(varchar(2), FLOOR(DATEDIFF(minute, StartTime, EndTime) / 60)) + ':' + CONVERT(varchar(2), DATEDIFF(minute, StartTime, EndTime) % 60) AS Diff FROM [每日工時表] WHERE ([pid]='" + pid + "') ORDER BY [count] DESC";
            }
            else
            {
                strSQL = "SELECT [每日工時表].*, CONVERT(varchar(2), FLOOR(DATEDIFF(minute, StartTime, EndTime) / 60)) + ':' + CONVERT(varchar(2), DATEDIFF(minute, StartTime, EndTime) % 60) AS Diff FROM [每日工時表] WHERE ([account] = '" + account + "') ORDER BY [count] DESC";
            }
        }
        //在網頁onload的時候指定SqlDataSource的SelectCommand才是正確的時機
        SqlDataSource1.SelectCommand = strSQL;
    }

    //在GridView資料繫結完成後,可以做格式的處理
    protected void GridView1_DataBound(object sender, EventArgs e)
    {
        string pid = string.Empty;
        double t1 = 0;
        double t2 = 0;
        string strMsg = string.Empty;
        System.Data.DataTable dt1 = null;
        for (int i = 0; i < ((GridView)sender).Rows.Count; i++)
        {
            for (int j = 0; j < ((GridView)sender).Rows[i].Cells.Count; j++)
            {
                //巡覽所有Cells
            }
            pid = ((GridView)sender).Rows[i].Cells[3].Text;
            dt1 = db1.GetDataTable("SELECT cname FROM 專案列表 WHERE id='" + pid + "'");
            ((GridView)sender).Rows[i].Cells[3].Text = dt1.Rows[0][0].ToString();

            //日期時間的字串格式設定
            ((GridView)sender).Rows[i].Cells[4].Text = string.Format("{0:yyyy/MM/dd}", DateTime.Parse(((GridView)sender).Rows[i].Cells[4].Text));
            ((GridView)sender).Rows[i].Cells[5].Text = string.Format("{0:HH:mm}", DateTime.Parse(((GridView)sender).Rows[i].Cells[5].Text));
            ((GridView)sender).Rows[i].Cells[6].Text = string.Format("{0:HH:mm}", DateTime.Parse(((GridView)sender).Rows[i].Cells[6].Text));
            ((GridView)sender).Rows[i].Cells[7].Text = string.Format("{0:HH:mm}", DateTime.Parse(((GridView)sender).Rows[i].Cells[7].Text));

            //加總工時欄位
            double hours = double.Parse(string.Format("{0:HH}", DateTime.Parse(((GridView)sender).Rows[i].Cells[7].Text))) * 60;
            double minutes = double.Parse(string.Format("{0:mm}", DateTime.Parse(((GridView)sender).Rows[i].Cells[7].Text)));
            t1 = t2;
            t2 = hours + minutes;
            t2 = t1 + t2;
        }
        lblTotal.Text = "總合:" + Math.Floor(t2 / 60).ToString() + "小時" + (t2 % 60).ToString() + "分鐘";

        lblItemEmpty.Text = ""; 
        lblTotal.Visible = true;
        if (((GridView)sender).Rows.Count == 0)
        {
            lblItemEmpty.Text = "搜尋不到資料";
            lblTotal.Visible = false;
        }
    }
    protected void ckbTag_CheckedChanged(object sender, EventArgs e)
    {
        initSerachItem();
    }
    protected void drpKeyWord_SelectedIndexChanged(object sender, EventArgs e)
    {
        initSerachItem();
    }
    protected void drpType_SelectedIndexChanged(object sender, EventArgs e)
    {
        initList();
    }
}

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 伊 的頭像

    伊のspace~芳香精油*美容保養*程式設計

    伊 發表在 痞客邦 留言(0) 人氣()