asp.net新建表單保存和提交的問題解決方案

問題描述:

作爲信息管理系統,表單的新建頁面,包括保存和提交操作。作爲使用者,不知道編程的機制,如何保證使用保存和提交按鈕,都能保證數據正確寫入數據庫中,如何消除兩者之間的差異,給用戶的感覺是兩者之間都是一樣的方便、準確和快捷?

這裏給出了一種解決方案。通過在頁面放置一個隱藏的label標籤,本標籤主要用於保存插入語句返回的自增長id的值,並設置其初始值爲“None"。然後,在保存中根據隱藏標籤的值,判斷使用數據庫插入語句,還是數據庫更新語句。

下面是保存公用函數的C#代碼實現:

private int SaveDataInfo(string state, string msg)
    {
        Dictionary<string, string> tableKeyVals = new Dictionary<string, string>();
        ArrayList temp = new ArrayList();
        GetAllControlKeyVals(this, tableKeyVals, ref temp);//獲取信息
        if ("None" == lb_none_approvalID.Text)
        {//執行插入操作
            if (dataInsertDb(tableKeyVals, state) > 0)
            {
                MyClientScript.ygJScript.Alert(msg + "成功", this);
                userCtr1.SetTableKeyValue(lb_none_approvalID.Text);//上傳設置3
                return 1;
            }
            else
            {
                MyClientScript.ygJScript.Alert(msg + "失敗", this);
                return 0;
            }
        }
        else
        {//執行更新操作
            if (dataUpdateDb(tableKeyVals, state) > 0)
            {
                MyClientScript.ygJScript.Alert(msg + "成功", this);
                return 1;
            }
            else
            {
                MyClientScript.ygJScript.Alert(msg + "失敗", this);
                return 0;
            }
        }
    }
下面是UPdate和Insert語句結合可輸入元素鍵值對字典對象,實現的數據的更新和插入操作的代碼實現的例子。

private int dataUpdateDb(Dictionary<string, string> tableKeyVals, string state)
    {
        string sql = "update tb_approval set ";
        foreach (KeyValuePair<string, string> item in tableKeyVals)
        {
            sql += item.Key.Split('_')[1] + "='" + item.Value + "',";
        }
        sql += "addTime='" + DateTime.Now.ToString() + "',state='" + state + "' where approvalID='" + lb_none_approvalID.Text + "'";
        if (MyDBInterface.getNothingByText(sql) > 0)
        {
            return 1;
        }
        else
        {
            return 0;
        }
    }

    private int dataInsertDb(Dictionary<string, string> tableKeyVals, string state)
    {
        string sql = "insert into tb_approval(";
        string sqlTemp = " values('";
        foreach (KeyValuePair<string, string> item in tableKeyVals)
        {
            sql += item.Key.Split('_')[1] + ",";
            sqlTemp += item.Value + "','";
        }
        sql += "addUserID,addUserName,addTime,state)";
        sqlTemp += user.UserID + "','" + user.UserName + "','" + DateTime.Now.ToString() + "','" + state + "');select SCOPE_IDENTITY()";
        sql += sqlTemp;//拼湊到完成sql語句

        DataTable resDt = MyDBInterface.getTableByText(sql);
        if (resDt != null && resDt.Rows.Count > 0)
        {
            lb_none_approvalID.Text = resDt.Rows[0][0].ToString();//記錄插入後的返回ID
            return 1;
        }
        else
        {
            return 0;
        }
    }

至此,整個的數據表單的保存和提交操作基本完成。最後的工作就是如何在保存和提交時,正確的調用函數做出判斷。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章