mvc4跟mysql文法——03.11

來源:互聯網
上載者:User

標籤:

mvc4:
子頁面:@section A{}
母頁面:@RenderSection("A",false)
false:別的頁面沒有定義為A的Section的話 也沒事,layout不管了
true:沒有A的話會報錯

@Html.Partial("A"):有傳回值,返回到頁面,然後拼接輸出
@{Html.RenderPartial("A")}:沒有傳回值,直接向Response輸出結果

[ChildActionOnly] //子行為
public ActionResult Msg()
{
return PartialView("Msg", DateTime.Now);
}
@Html.Action("Msg")有傳回值,返回到頁面,然後拼接輸出
@{Html.RenderAction("Msg")}沒有傳回值,直接向Response輸出結果

使用@helper xx(int b){}關鍵字在View中建立函數並且調用:@xx(10)


mysql:
自增列:auto_increment
擷取日期:now()
支援:limit m,n(從m位置開始取n位),當order by 和 limit同時使用,可能出錯,建議內部
order by 外面limit
調用預存程序:call procName(xx)
儲存內容部區分大小寫,但表名跟欄位名區分大小寫
mysql都以;結尾
聲明預存程序:delimiter // create procedure procName(xx) begin xxx end;
所有的declare語句必須在所有的執行語句之前,遊標除外
預存程序裡面不用;結尾 delimiter // 變為//結尾
聲明局部變數:declare _a int default 100;
使用者變數:使用者狀態的整個生命週期有效,即一個使用者的會話周期內有效,不需要提前聲明,可直接
使用 @符號;set @num =100;
系統變數:整個系統可見; 使用@@符號。set @@num=100;
全域變數:整個系統可見;使用@@Global符號 set @@global.num=100;
在查詢中給變數賦值用 into 或者= select max(id) into @a from A /select max(id) [email protected] from A
Mysql可以給代碼塊命名,並用leave跳出代碼塊,代碼塊以begin關鍵字開始,以end關鍵字結束,代
碼塊名和begin之間有:號 例》
_code:BEGIN
SET @num=101;
IF(@num>100) THEN
LEAVE _code;
END IF;
SELECT @num; #不會執行
END _code;
Mysql的IF語句,例》

IF (@num>0) THEN
...
ELSEIF(@num>1) THEN
...
ELSE
...
END IF;
判斷為空白:isnull()
時間函數:adddate(now(),3);返回目前時間加三天后的時間
addtime(now(),‘yyyy-mm-dd hh:mm:ss‘)返回目前時間加後面的時間的時間
datediff(‘2001-1-1‘,‘2002-1-1‘)返回倆個時間相差的天數
timestampdiff(YEAR/MONTH/DAY/HOUR/MINUTE/SECOND/..,‘2001-1-1‘,‘2002-1-1‘)返回
倆個時間的差,單位可選
迴圈:loop 迴圈沒有判斷需要自己寫leave 例》
_code:LOOP
IF(@num>100) THEN
LEAVE _code; #跳出迴圈
END IF;
SELECT @num;
END LOOP _code;
字串尋找函數: position(substr in str) 返回substr在str中第一個出息的位置,從一開始
資料類型轉換:cast(x as type) convert(x type) type只可以為:
char,date,time,datetime,decimal,signed,unsigend,其他不支援
事務:start trasaction..commit;
Mysql通過PREPARE關鍵字執行拼接的SQL,這時儲存SQL字串的變數必須為使用者變數,不能用局部變
量,例:
SET @s=‘select * from Meta where metaId=?;‘;
SET @id=100;
#聲明先行編譯sql
PREPARE ps FROM @s;

#執行先行編譯sql
EXECUTE ps USING @id; #using調用參數

#銷毀先行編譯sql
DEALLOCATE PREPARE ps;

遊標:Mysql遊標,mysql中使用LOOP迴圈遊標比較方便
嵌套遊標使用時,嵌套的遊標的標識需在嵌套遊標之前重設例》
DECLARE _id INT;
DECLARE _done BOOL DEFAULT FALSE; #初始化遊標標識
#聲明遊標
DECLARE cs CURSOR FOR
SELECT uid FROM users;
#聲明遊標事件在發生not found事件時的處理代碼
DECLARE CONTINUE HANDLER FOR NOT FOUND
SET _done=TRUE;
OPEN cs;
_cs:LOOP
#讀取遊標
FETCH cs INTO _id;
#根據遊標標識判斷是否跳出遊標
IF(_done) THEN
LEAVE _cs;
END IF;
BEGIN
... #遊標中的處理代碼
END;
#重設遊標標識,因為迴圈中有select時,not found事件會被激發
#但是這不是真的是遊標終止的事件,而是select發生的事件
#所以,需要重設迴圈標識
SET _done=FALSE;
END LOOP _cs;
CLOSE cs; #關閉遊標
Mysql鎖

鎖是針對不同請求對同一資源的操作而進行的限定

使用鎖,GET_LOCK(‘鎖名‘, 等待的時間),1、成功開啟;0、等待逾時;NULL、發生錯誤
例:SELECT GET_LOCK(‘mylock‘, 10); ——開啟一個名為mylock的鎖,開啟的逾時時間為10秒

判斷鎖是否被釋放,IS_FREE_LOCK(‘鎖名‘),1、已經被釋放;0、未被釋放
例:SELECT IS_FREE_LOCK(‘mylock‘); ——判斷鎖mylock釋放已經被釋放

釋放鎖,RELEASE_LOCK(‘鎖名‘),1、成功釋放;0、釋放不成功;NULL、不存在該鎖
例:SELECT RELEASE_LOCK(‘mylock‘); ——釋放鎖名為mylock的鎖

mvc4跟mysql文法——03.11

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.