GH教學

GodHelp線上補習班、各類教學分享網站(程式設計、Flash遊戲教學、影音轉檔、動畫、繪圖、Go Home Schooling.....等等)

搜尋

顯示具有 ASP 標籤的文章。 顯示所有文章
顯示具有 ASP 標籤的文章。 顯示所有文章

ASP NText無法顯示值

nText欄位要顯示資料
請注意要配合sql指令欄位的順序
select A B C from table
就必須先讀取A欄位值在B....
不然就無法顯示值了

Substring Mid

截字串不同語法但大同小異
注意位置起始有的從1有些則0開始算

ASP語法
mid(str,start,length)
start從1開始算

C#、Javascript 語法
str.substring(start,length)
str.substring(start)
start從0開始算
沒有length參數則表示到最後

asp使用include方式

Q.以下兩種Include的寫法,是哪裡不一樣?
1.<!--webbot bot="Include" U-Include="../top.asp" TAG="BODY" -->


2.<!--#include file="top.asp" -->
我測試起來發現第一個寫法,沒有辦法把<head></head>裡的資料Include進來耶!是正確的嗎?
第二個可以,不過有些圖會沒有辮法顯示,我不太清楚為什麼不能顯示,因為Include進來的話,不是應該沒有問題?!
不知道有沒有大大知道差別在哪呢?
或者有沒有其它寫法?
http://tw.knowledge.yahoo.com/question/question?qid=1010010602751

A.
第一種方式是Frontpage 元件產生,我比較少用
第二種方式很多人用,還有分file及virtual兩種模式
file模式是以相對路徑來看
virtual是配合主機設定虛擬目錄來運用

建議使用file模式
被引入的檔案可以使用以下兩方法來做
a.使用絕對路徑
你提到圖片會有錯誤include file=""
由於include是把程式引入目前的程式
檔案的路徑會要以目前的程式為基準來算
簡單解決方式被引入Include的圖片路徑
使用絕對路徑就可以,不用管目前的程式的目錄位置
例如 /image/a.gif 直接從根目錄來算

b.使用程式判斷目前路徑目錄階層,然後轉換成../../ 或./
我是使用這方式來套用我的版型

include目的就是讓程式重複使用
可以使用的好就可以簡化程式
也利於版型的設計

ASP寫網頁讀入XML

Q.用ASP寫網頁 關於存取檔案的問題
我想將一個XML檔
將裡面文字讀入(已有寫入文字的功能 將文字讀入是想要做類似修改的功能 )

http://tw.knowledge.yahoo.com/question/question?qid=1509112908767

A.使用ASP讀取XML格式
可以Microsoft.XMLDOM物件
語法請參考

sSourceFile = Server.MapPath("./1.xml")
Set objXML =Server.CreateObject("Microsoft.XMLDOM")
objXML.load(sSourceFile)
Set objXMLItem=objXML.documentElement.getElementsByTagName("area")
For i=0 To objXMLItem.length-1
response.write i & "="& objXMLItem.item(i).text
Next
Set objXMLItem=nothing
Set objXML =Nothing

ASP.NET 如何使用預約寄信之問題 MailSchedule

Q.ASP.NET 如何使用預約寄信之問題
http://tw.knowledge.yahoo.com/question/question?qid=1509113008026
我想要用我們系上ASP.NET寫一個程式
呼叫我們系上MAIL去寄信
而我在網路上爬文有看到能使用gmail寄信
能夠立刻將信件寄出去
但是我們系上的MAIL有一個功能叫做預約寄信
就是它可以在你設定的未來時間裡
他會在你所設定的時間將那封信寄出去
想請問一下我該如何做才能呼叫那個功能呢?

想請問一下GH大
您所提供的方法是自己架一個server寄信嗎?
還是說是可以呼叫其他mail寄信呢?
因為我是想說能藉由呼叫系上的mail幫我完成這項功能
而我們的mail也確實有這樣的功能
但我不知道如何呼叫他去使用。
而我使用的是VS2008寫ASP.NET程式
不知跟您提供的程式是否有所出入。


A.你應該把這功能拆成(a).寄信程序 (b).排定時程
(a).寄信程序
請參考
http://asp.godhelp.com.tw/2009/10/asp-mail.html
(b).排定時程
有以下兩方式可以進行
1.Window的排程(Linux也有類似程序),使用程式新增此ㄧ排程
到時就執行你的寄信程序
2.每隔一段時間檢查你的寄信設定紀錄
是否時間到了,到期的信就執行寄信程序

補充說明GH提到的
A.寄信程序
嚴謹一點來說算是透過程式將信件內容組起來叫MailServer寄送
我寫的這個是Web ASP版,也就是Run在Web上的一支小程式
主要還是會去找SMTP Service來發信,所以當然是可以指定MailServer做寄信動作
當然如果你要寫個AP也是可以
以下網址我會再補.NET版
http://asp.godhelp.com.tw/2009/10/asp-mail.html
B.排定時程
當然也是可以RUN AP
重要的是對的時間做最的事
建議寫記錄在DB內
包含發信時間內容及對象

預約這程序就是排程每分鐘執行
例如每個時間檢查DB內,寄信時間有晚於現在時間的
就表示這些是要發送的
這時也就是你要進行發信動作的時候

Javascript Calculator

Q.ASP自動結算
http://tw.knowledge.yahoo.com/question/question?qid=1009111905313

程式如上,我要怎樣改,才能讓選完數量之後,小計直接變更,不用按計算金額!
A.如果不要送出Submit的狀況,改變數量就計算的話
當然就需要使用Javascript來做囉
1.先寫個Javascript function cal()
2.在拉選單及checkbox上加上事件function cal
onchange上加

程式碼參考<html>
<head>
<title>商品選擇</title>
<meta http-equiv="Content-Type" content="text/html; charset=big5">
<script language="JavaScript" type="text/JavaScript">
<!-- ///
function cal()
{
var iResult=0;
var chi1=parseInt(document.all.chi1.value);
for (var i=0;i<document.all.pro.length ;i++ )
{
if (document.all.pro[i].selected==true)
{
document.all.txtEng.value=document.all.pro[i].value
}
}
var txtEng=parseInt(document.all.txtEng.value);
iResult=chi1*txtEng;
if(document.all.txtmth.checked==true)
{
var txtmth=parseInt(document.all.txtmth.value);
iResult=iResult+txtmth;
}
document.all.txtAve.value=iResult;
}
//-->
</script>
</head>
<body>
<%
chi1=CLng(Request("Chi1"))
eng=CLng(Request("txtEng"))
mth=CLng(Request("txtMth"))
ave=(chi1*eng+mth)
%>
<p>金額小計</p>
<form method="POST" action="cal.asp">
<p>商品名稱:<select size="1" name="pro" onchange="cal()">
<option value="10" selected>餅乾</option>
<option value="20">糖果</option>
<option value="30">汽水</option>
</select></p>
<p>數量:
<select size="1" name="chi1" onchange="cal()">
<option value="1" selected>1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select></p>
<p>單價:<input type="text" name="txtEng" value="<%=eng%>" size="20"></p>
<p>備註:<input type="checkbox" name="txtmth" value="1000" checked onclick="cal()">第一次送貨1000元</p>
<p>小計:<input type="text" readonly name="txtAve" value="<%=ave%>" size="20"></p>
<input type="submit" valus="計算" value="計算金額">
<input type="reset" valus="清除" value="清除">
</body>
</html>

取最大最小值Min Max No If

Q.關於VB副程式的問題..拜託高手幫我解(送10點)
http://tw.knowledge.yahoo.com/question/question?qid=1509110708713

輸入十個數值,利用副程式maxmin(m,n,array(1)),球出期中的最大數與最小數(m與n分別為一維陳列array1中的最大數與最小數)

A.本來想投票,但我覺得應該用數學運算比IF判斷效率會更好
簡單寫了一下
a b兩值
取大值用(a+b+abs(a-b))/2
取小值用(a+b-abs(a-b))/2
<
Sub maxmin(ByVal m As Integer, ByVal n As Integer, ByVal arrayA() As Integer)

Dim i As Integer
Dim iPlus As Integer
Dim iMinus As Integer
Dim iPlus2 As Integer
Dim iMinus2 As Integer
iValMax=arrayA(0)
iValMin=arrayA(0)
For i = 0 To UBound(arrayA)-1
iPlus =iValMax+arrayA(i+1)
iMinus =abs(iValMax-arrayA(i+1))
iValMax =(iPlus +iMinus )/2

iPlus2 =iValMin+arrayA(i+1)
iMinus2 =abs(iValMin-arrayA(i+1))
iValMin =(iPlus2-iMinus2 )/2
Next
m = iValMax
n = iValMin

End Sub

詳細影音解說
待續

asp 程式語法疑問

Q.這是我寫的判斷式
<%
if not IsNull (rs("PAGE_PIC")) or (rs("PAGE_PIC") <> "" ) Then
%>
<img src="pic/<%=rs("PAGE_PIC")%>"/>
<%
end if
%>



是判斷如果欄位不為空或是不是空字串就顯示內容
但是如果從資料庫輸入資料又刪掉
這段字就會有問題
網頁上會有叉燒包
想請問是否有方法可以改正?
還請不吝指教 謝謝

A.如果你把資料先存在一個變數
問題就可以輕鬆解決
影音教學請參考







程式碼參考

sPAGE_PIC=""
if not rs.eof then
sPAGE_PIC=rs("PAGE_PIC")
end if

if (sPAGE_PIC<> "" ) Then %>
<img src="pic/<%=sPAGE_PIC%>"/>
<% end if %>

HTML導ASP

由於HINET要求要HTML檔當首頁
我原本是用ASP作的網頁
所以現在卡在html連結ASP問題
剛剛看知識+說甚麼連結虛擬目錄路徑
這我不懂
希望大大能詳細解說一下
順便幫我解決一下我的煩惱

最簡單的方式是寫Javascript
將index.html導向你要的ASP網頁
<HTML>
<HEAD>
<TITLE>Title</TITLE>
<META http-equiv=Content-Language content=zh-tw>
<META http-equiv=Content-Type content="text/html; charset=UTF-8">
<SCRIPT LANGUAGE=JavaSCRIPT>
<!-- ///
location.href='./index.asp';
//-->
</SCRIPT>
</HEAD>
<BODY>
<CENTER>
</CENTER>
</BODY>
</HTML>

但問題是你網站要能執行ASP程式

同時設定虛擬目錄是WEB主機的權限
所以你可能要先了解是否你放程式的WEB主機
有支援ASP程式的服務

SMS簡訊發送程序

簡訊SMS供應商Provider
API(Application Programming Interface)就是程式溝通介面
<%
aPhone=split("0936123XXX,0936456XXX",",")
set xmlHTTP = Server.CreateObject("Microsoft.XMLHTTP")
set XMLDocument = Server.CreateObject("Microsoft.XMLDOM")
'===發送多個號碼===
for iPhone=0 to ubound(aPhone)
'---台灣簡訊的API---
smsURL = "http://api.twsms.com/SendSMS.php?"
'簡訊參數
smsArgs = "CID=" & CID & "&CPW=" & CPW & "&N=" & aPhone(iPhone) & "&M=" & Server.Urlencode("內容")
'發送
xmlHTTP.open "GET",smsURL & smsArgs ,False
xmlHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xmlHTTP.send
Next
'===發送多個號碼===
'釋放資源
set xmlHTTP = nothing
set XMLDocument = nothing
%>

倒正三角形以For迴圈

C++問題倒正三角形以for迴圈
使用者輸入一個正整數
然後輸出以*印成的倒 正三角形(用for迴圈來做)
EX:
輸入5
輸出的東西
 *****
  ***
   *

寫了兩個不同的程式語言
重點是如何控制空白及*數量
C++
我是以階層iLevel來設定比較單純
你要5個*需要設定3層

int iLevel=3;
for(int i = iLevel-1 ; i <=0 ; i--)
{
repeat(iLevel-i," ") ;
repeat(1+(i)*2, "*") ;
repeat(iLevel-i," ") ;
printf("\n");
continue;
}
//自行定義一個repeat 數量,字的function
function repeat void repeat(int n,char ch)
{
for(int i=0;i<n;i++) printf("%c",ch);
}


ASP寫法

<%
iLevel=7
For i=iLevel-1 To 0 Step -1
Response.write String(iLevel-i," ") & String(1+(i)*2, "*") & String(iLevel-i," ") & "
"
Next
%>

取亂數、要取a b兩值之間亂數、取固定位數亂數

取亂數、要取a b兩值之間亂數、取固定位數亂數

Excel
=RAND()*(b-a)+a
取兩碼亂數
=INT(RAND()*(99-10)+10)

ASP
Randomize
iRand=Cint((b-a)* Rnd()) +a

SQL
Convert(int,RAND()*(@b-@a)+@a)
99~10表示2位的亂數
Convert(int,(Rand()*(99-10)+10))
Convert(int,(Rand()*(999-100)+100))

ASP亂數的選答案

ASP亂數的選答案
資料庫內容如下
題號,題目,A選項,B選項,C選項,D選項,E選項,正解
然後題目我已經亂數挑選過了

請問有什麼好方法可以把ABCDE選項也小小的亂一下
<例如B答案跑到A答案>
對答的時候還要對到正確答案

GH的建議如下
1.顯示選項A選項,B選項,C選項,D選項,E選項
其中選項A的值=1,B選項=2,C選項=3類推
2.正解欄位儲存值1~5就好
如果是B選項則儲存2
3.只要前端也使用亂數模式將選項呈現
程式碼如下

<%
Randomize
'亂數取以下5種其中一種顯示
iRand=Cint((5-1)* Rnd()) +1
select case iRand
case 1
'呈現答案A選項,B選項,C選項,D選項,E選項
case 2
'呈現答案C選項,D選項,E選項,A選項,B選項
case 3
'呈現答案D選項,E選項,A選項,B選項,C選項
case 4
'呈現答案D選項,B選項,E選項,A選項,C選項
case 5
'呈現答案A選項,D選項,E選項,B選項,C選項
case else
'呈現答案E選項,A選項,B選項,C選項,D選項
end select
'還可以增加更多不同顯示順序
%>


4.最後只要使用者送出答案時會將值送出
就可以判斷使用者答案是否正確了

日期格式Date Format

ASP

<%=FormatDateTime("2009/10/26 下午 07:14:00",2)%<
'顯示2009/10/26格式

SQL

ASP三角形排列問題

VBA老師出題要我做一出個如下的三角形
.............a
...........aaa
.........aaaaa
.......aaaaaaa
.....aaaaaaaaa
...aaaaaaaaaaa
.aaaaaaaaaaaaa
首先要先觀察排列規則
而且每列數量是相同13個
所以只要觀察出a的數量
可以看出a是以2為增量所以*2來計算
相對地.就以相同量減少
以維持整行13的數量

VBA語法
Private Sub Command1_Click()
n = 13
For k=1 To 7
Print String(n-(K-1)*2,".") & String(1+(K-1)*2, "a")
Next
End Sub

ASP語法
<%
n = 13
For k=1 To 7
Response.write String(n-(K-1)*2,".") & String(1+(K-1)*2, "a") & "<br>"
Next
%>

ASP Mail方式

如果你發現EMail檔案已經到Queue資料夾
就表示你Email程式的程序是沒有錯的
問題應該發生在你IIS主機的SMTP Service
解決方法如下:
方法一
你可以重新啟動你的SMTP服務,讓他重新啟動寄發程序
方法二
或者到【新增移除程序】移掉此服務後再重新增加SMTP服務安裝

另外
當然也有可能是你SMTP Service內的設定有問題
可以先設定成預設狀態
(相對安全性比較低)

還有可以使用指定主機、認證帳號、秘碼的驗證方式來寄送
也就可設定特定發送的SMTP Service主機
(為了可以集中管理並設定Mail反解的指定喔)

(A)ㄧ般寄送本機MAIL程序

<%
Set cdoMessage = Server.CreateObject("CDO.Message")
Set objBodyPart = cdoMessage.BodyPart
objBodyPart.Charset = "UTF-8"
cdoMessage.From = "寄送者@Email"
cdoMessage.To = "收件者@Email"
cdoMessage.Bcc = "密件收件者@Email"
cdoMessage.Subject ="會員Email信"
cdoMessage.htmlBody "內容"
cdoMessage.Send
Set cdoMessage = Nothing
%>


(B)寄送他台主機MAIL程序

<%
sch = "http://schemas.microsoft.com/cdo/configuration/"
Set cdoConfig = Server.CreateObject("CDO.Configuration")
cdoConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
cdoConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") ="SMTPMail主機可以是IP"
cdoConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
cdoConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 10
cdoConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
cdoConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "認證帳號"
cdoConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "密碼"
cdoConfig.Fields.update
Set cdoMessage = Server.CreateObject("CDO.Message")
Set cdoMessage.Configuration = cdoConfig
Set objBodyPart = cdoMessage.BodyPart
objBodyPart.Charset = "UTF-8"
cdoMessage.From = "寄送者@Email"
cdoMessage.To = "收件者@Email"
cdoMessage.Bcc = "密件收件者@Email"
cdoMessage.Subject ="會員Email信"
cdoMessage.htmlBody "內容"
cdoMessage.Send
Set cdoMessage = Nothing
%>

(C)ASP.NET C#語法

using System.Web.Mail;

MailMessage eMail = new MailMessage();
eMail.Fields["http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"] = 1;
eMail.Fields["http://schemas.microsoft.com/cdo/configuration/sendusername"] ="認證帳號";
eMail.Fields["http://schemas.microsoft.com/cdo/configuration/sendpassword"] = "密碼" ;

eMail.From = "寄送者@Email" ;
eMail.Bcc = "密件收件者@Email";
eMail.To = "寄送者@Email" ; // Recipients
eMail.Subject ="會員Email信";
eMail.BodyFormat = MailFormat.Html;
eMail.Body ="內容";
SmtpMail.SmtpServer =="SMTPMail主機可以是IP";
SmtpMail.Send(eMail);

兌幣機會依序兌換10元,5元,1元硬幣.請使用程式計算173元可兌換多少個10元,5元,1元硬幣?

錢幣iMoney不管是多少都可以自動算出來吧

<%
--先給10元5元1元幣初始數量0
i10=0
i5=0
i1=0
iMoney=173
--判斷
<%
i10=0
i5=0
i1=0
iMoney=165
If iMoney>=10 Then
i10=Int(iMoney/10)
iMoney=iMoney Mod 10
End If
If iMoney>=5 Then
i5=Int(iMoney/5)
iMoney=iMoney Mod 5
End if
i1=iMoney
--結果
response.write "10X" & i10 & ",5X" & i5 & ",1X" & i1 %>

各式Case語法

C# JavaScript相同

switch (caseSwitch)
{
case 1:
Console.WriteLine("Case 1");
break;
case 2:
Console.WriteLine("Case 2");
break;
default:
Console.WriteLine("Default case");
break;
}


ASP VB

select case sRet
case "1"
case "2"
case else
end select


SQL

SELECT CASE ColumnA
WHEN '1' THEN '1Case'
WHEN '2' THEN '2Case'
ELSE 'ElseCase'
END AS StateName
FROM TableA

活動

給您專屬賀卡

好站

知識+名片

GH知識+

天氣

Sitetag台灣部落格列表

統計

Blog Look Score and Rank