2015年10月5日 星期一

發送EMAIL

https://dotblogs.com.tw/joysdw12/2010/10/28/18656

參考

blog.xuite.nemis166@hoyu.com.twt/tolarku/blog/34601274-Google+Gmail+%2B+ASP.NET+(VB)+寄信程式

後製裡面要 Imports System.Net.Mail 這個我想應該很清楚為什麼了~
Step 1  在Aspx頁中,看你心情,可以放入textbox,button.在此我們先假設我們要發送給textbox中輸入的mail,按下button就寄出
Step 2  在Button1的Click事件中做寄信的程式!我們將程式分段來看
 Protected Sub Send_button_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles Send_button.Click
        Dim S_name As String = "Shinyo"       '定義寄信者名稱
        Dim S_email As String = "shinyo.her@gmail.com" '定義寄信者信箱
        Dim pro_msg As String
        Dim mail As New MailMessage()
        mail.To.Add(Textbox1.text)  '給收件者(textbox填入值)
        mail.From = New MailAddress(S_name & "<" & S_email & ">") '寄件者
        mail.IsBodyHtml = True '以Html方式發送
Step 3  設定信件內容(做一個TABLE進去會比較漂亮,也可以在Aspx中再多加入你想要給使用者填的內容
       mail.Subject =  "標題AA"        '主旨
        pro_msg = "
"

        pro_msg += "
您好:
有新的發問者在論壇上回覆您的留言!資料如下


"        pro_msg += "
"

        pro_msg += "
新回應
"
        pro_msg += "
填寫日期
"
        pro_msg += "
" & DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") & "

"        pro_msg += "
內容
"
        pro_msg += "
" & Re.text & "

"        mail.Body = pro_msg '將資料塞進內容
Step 4  快結束了阿~就是透過SMTP寄送囉,一個網站內可能不只一支程式要寄信對吧?所以我建議不要把SMTP寫在程式裡,放在Web.config裡叫出來大家都可以用豈不歡樂 :) 在Web.config裡加入 :

 
   

Step 5  最後一步!把SMTP叫出來,然後...
Dim smtp As New SmtpClient(System.Configuration.ConfigurationManager.AppSettings("smtp"))
        smtp.Send(mail) '這就是寄信的動作了阿!!
’可以做個提醒
Response.Write("")
    End Sub

2015年10月1日 星期四

參數數據類型 text 對於 replace 函數的參數 1 無效的解決辦法

參考

MSSQL報錯:參數數據類型 text 對於 replace 函數的參數 1 無效的解決辦法


但是我們可以換一種方法解決這個問題。下面就來分析下解決辦法。

對text或ntext類型的數據在查詢中不能進行字元串操作。這時用得最多的是把text當作varchar(實際內容長度低於8000位元組時)或把ntext當作nvarchar(實際內容長度低於4000位元組時)來處理。但是這樣處理也不是非常妥當畢竟如果text欄位內容超過8000了豈不是要被截斷或者忽略掉。

最終找到了一種方法解決了」參數數據類型 text 對於 replace 函數的參數 1 無效」的問題。下面用一個例子來說明怎麼處理的。

語法如下:
update table set column=replace(cast(column as varchar(max)),'123′,'abc')

解釋:
其中的table 代表表名,column代碼該表中需要替換的列。改語句的作用是把table表中column列中所有出現123的都給替換為abc。
附:max類型的介紹
Microsoft SQL Server 2005 中引入了 max 說明符。此說明符增強了 varchar、nvarchar 和 varbinary 數據類型的存儲能力。varchar(max)、nvarchar(max) 和 varbinary(max) 統稱為大值數據類型。您可以使用大值數據類型來存儲最大為 2^31-1 個位元組的數據。
注意:
當 sp_tableoption 存儲過程的 『large value types out of row' 選項設置為 OFF 時,大值類型的行內存儲限制為 8000 個位元組。當此選項設置為 ON 時,只在行內存儲 16 位元組的根。有關詳細信息,請參閱 sp_tableoption (Transact-SQL)。
大值數據類型在行為上和與之對應的較小的數據類型 varchar、nvarchar 和 varbinary 相似。這種相似使 SQL Server 能夠更高效地存儲和檢索大型字元、Unicode 和二進制數據。
有了大值數據類型,使用 SQL Server 的方式是使用早期版本的 SQL Server 中的 text、ntext 和 image 數據類型所不可能具有的。例如,在 SQL Server 2005 中,您可以定義能存儲大量數據(最多可達 2^31 位元組的字元、整數和 Unicode 數據)的變數。有關詳細信息,請參閱 Transact-SQL 變數。
下表說明了大值數據類型和 SQL Server 早期版本中與之對應的數據類型之間的關係。





大值數據類型早期版本中的 LOB
varchar(max)text*
nvarchar(max)ntext*
varbinary(max)
image

* SQL Server 6.5 版本的客戶端不支持 ntext 數據類型,因此無法識別 nvarchar(max)。



重要提示:

請使用 varchar(max)、nvarchar(max) 和 varbinary(max) 數據類型,而不要使用 text、ntext 和 image 數據類型。

大值數據類型在行為上和與之對應的較小的數據類型 varchar(n)、nvarchar(n) 和 varbinary(n) 相同。下面介紹大值數據類型在某些特定情形下的使用:

游標由於可以定義大值數據類型變數,便可以將 FETCH 返回的大值數據類型列中的數據賦給本地變數。有關詳細信息,請參閱 FETCH (Transact-SQL)。 使用大值數據類型不影響游標的強制實施游標類型轉換用法。

成塊更新 UPDATE 語句現在支持 .WRITE( ) 子句對基礎大值數據列進行部分更新。這類似於 SQL Server 早期版本中所支持的對text、ntext、image 數據類型的文本指針操作、WRITETEXT 和 UPDATETEX。有關詳細信息,請參閱 UPDATE (Transact-SQL)。觸發器 支持對插入的和刪除的表中的大值數據類型列引用上使用 AFTER 觸發器。有關詳細信息,請參閱 CREATE TRIGGER (Transact-SQL)。

字元串函數 內置的可操作字元和二進制數據的字元串函數有所增強,可支持大值數據類型的參數。這些函數包括: 
COL_LENGTH
CHARINDEX
PATINDEX
LEN
DATALENGTH
SUBSTRING