今天做了點東西,用到的東西比較雜,總結下,以備以后查閱:
1、首先需要將c#連數據庫查出的一條記錄的每個字段值取出來,我是將這條記錄的字段放在了一個數組中,如下:
string[] Infos=new string[3]; public Array show2DcodeMsg(string id) { SqlConnection connection = new SqlConnection(strCon); String str = "SELECT ZCCCode,ZCCAddr,OfUserName FROM tbZCCInfo WHERE ZCCCode=" + id; SqlCommand command = new SqlCommand(str, connection); command.Connection.Open(); command.ExecuteNonQuery(); SqlDataReader datareader = command.ExecuteReader(); while(datareader.Read()) { string ZCCCode = datareader["ZCCCode"].ToString(); string ZCCAddr = datareader["ZCCAddr"].ToString(); string OfUserName = datareader["OfUserName"].ToString(); Infos[0] = ZCCCode; Infos[1] = ZCCAddr; Infos[2] = OfUserName; } return Infos } |
我做的是http請求,參數獲得是需要在page_load函數中提取,然后調用上面這個函數,大概后臺代碼是這樣的:
protected void Page_Load(object sender, EventArgs e) { q_id = Request.QueryString["ID"]; if (q_id == null || q_id == "") { return; } { show2DcodeMsg(q_id); } } |
前臺的網頁需要用到上面獲取的Infos[]的值,這里一般都知道要在前臺調用后臺方法了,方法有ajax和jquery等,最簡單的就是<%=方法名%>這種方式了,但是這里問題來了,是要<%=Page_Load(object sender, EventArgs e)%> ?這顯然不合適,從參數上來說也能這么傳,再說也沒有調用Page_load這一說,怎么辦呢?我是直接另寫了三個方法:
public string returncode() { return Infos[0]; } public string returnAddr() { return Infos[1]; } public string returnName() { return Infos[2]; } |
這樣在前臺直接調用這三個方法不就行了。前臺代碼如下:
<script type="text/javascript" language="javascript"> var code="<%=returncode() %>"; var addr="<%=returnAddr() %>"; var name="<%=returnName() %>"; function showInfos() { // var img123=doucumen.getElementById("imgCar"); // img123.src="images/"+code+".jpg"; imgCar.src="images/"+code+".jpg"; li_num.innerHTML=code; li_addr.innerHTML=addr; li1.innerHTML=name; } </script> |
方法showInfos()是在body的onload里執行。執行結果就是,運行網頁,發送請求,查詢數據庫,返回的字段值直接顯示在網頁的控件上。
后面還用到一個asp:Button的一個onclick事件,往服務器里上傳數據,asp是服務其空間,只能直接調用后臺cs方法,這個比較簡單,直接就能調,問題來了:
前臺: <asp:Button ID = "testBtn" Text = "評價" runat = "server" onclick="submit"/> 后臺: protected void submit(object sender, EventArgs e) { ... } |
這是固定的格式,要注意幾個地方:
(1)前臺方法名沒有括號
(2)后臺方法有參數,并且就這樣,我也不知道原因
一開始我前臺加括號,后臺沒參數,感覺太正常不過了,結果報錯了
submit 重載均與委托system.eventHandler不匹配。重載出問題自然就想到參數的問題了,但是不加括號不知道為什么,記住吧。