2009年11月10日 星期二

已超過連接逾時的設定。在取得集區連接之前超過逾時等待的時間,可能的原因為所有的共用連接已在使用中,並已達共用集區大小的最大值。

1.與DB的connection開太多且用完後沒有關閉,導致connection pool已滿
2.dataReader 用完後沒有關閉

我的情況是兩種可能都有 XD

改掉之後程式就正常了

還有一種方法就是將connection pool加大

設定的方法就是在connectionString最後面加上Max pool size = 200

類似這樣
Server=myServerAddress;Database=myDataBase;Uid=myUsernamePwd=myPassword;Max pool size = 200

參考資料

補充說明:參考資料

Min pool size 代表在connection pool裡最少有幾個連接數,假設你Min pool size設5
那connection pool建立的時候,裡面就會有5個conncetion。

Max pool size則代表connection pool裡最多能有幾個connection。


如果connectioin已達到Max pool size且connection pool中的connection全部都在使用中,要打開新的SqlConnection物件時,則要等待一個SqlConnection物件關閉,然後才可以使用新的SqlConnection物件。如果請求等待時間超過ConnectionTimeout屬性指定的秒數,則會拋出exception。

2009年10月27日 星期二

vb.net mail

Imports System.Net.Mail

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim To_Address As String = Me.TextBox1.Text '"oonedpiece@gmail.com"

' 設定SMTPserver
Dim SMTP_Server As New SmtpClient("smtp.anet.net.tw")
Dim Mailmsg As New System.Net.Mail.MailMessage
Dim MailBodyHtml As String

Mailmsg.IsBodyHtml = True ' 為html內容格式

' 此信的寄件人
Mailmsg.From = New Net.Mail.MailAddress("vincent@guidenet.com.tw", "寄件人")
Mailmsg.Subject = Me.TextBox2.Text '"主旨"
MailBodyHtml = Me.TextBox2.Text '"TEST TEST"
Mailmsg.Body = MailBodyHtml

' 將字串裡的;分為多個收件人
For Each toperson As String In To_Address.Split(CChar(";"))
Mailmsg.To.Add(New Net.Mail.MailAddress(toperson, "收件人"))
Next
SMTP_Server.Send(Mailmsg)

End Sub

2009年10月16日 星期五

擷取SQL登入web.config字串

System.Configuration.ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString

2009年8月25日 星期二

簡易刪除對話框

將刪除button轉換成templatefield
再將與法插入到

..刪除..OnClientClick="return confirm('你確定嗎?')"

2009年8月11日 星期二

SQL Server 2008 中儲存資料表的 「 錯誤 」 訊息: 「 儲存變更時不允許 」

不允許儲存變更。 您所做的變更會需要下列資料表卸除並重新建立。 您有做任何變更一個資料表,無法重新建立或啟用選項會防止儲存變更,需要重新建立資料表。


-------------------------------------------

http://support.microsoft.com/kb/956176/zh-tw

若要將 儲存的變更,需要重新建立資料表的 [ 選項請依照下列步驟執行:
  1. 請開啟 SQL Server Management Studio (SSMS)。
  2. 在 [ 工具 ] 功能表中上, 按一下 [ 選項 ]。
  3. 在 [ 選項] 視窗,巡覽窗格中, 按一下 設計工具 (英文)。
  4. 選取或清除 [儲存的變更,需要重新建立資料表 ] 核取方塊,然後再按一下 [確定]
請注意 如果您停用此選項時,您不會警告您,儲存資料表時所做的變更已變更資料表的中繼資料結構。 在這種情況下您儲存資料表時,可能會發生資料遺失。

關閉 [防止儲存需要資料表重新建立的變更] 選項的風險。

雖 然關閉此選項,可協助您避免重新建立資料表,它也會導致變更遺失。 舉例來說,假設您會啟用變更追蹤功能追蹤資料表的變更的 SQL Server 2008 中。 當您執行的作業,會導致重新建立資料表時, 收到錯誤訊息中,< 徵狀 > 一節所述。 不過,如果您關閉這個選項,重新建立資料表時,會刪除現有的變更追蹤資訊。 因此,建議您做無法解決這個問題藉由關閉選項。

如果要判斷是否變更的追蹤功能已啟用資料表中,請依照下列步驟執行]:
  1. 在 SQL Server Management Studio,請在 Object Explorer 中尋找資料表。
  2. 資料表上, 按一下滑鼠右鍵,,然後按一下 [ 內容]
  3. 在 [ 表格內容] 對話方塊] 方塊中,按一下 [變更追蹤 (英文)。
如果 變更追蹤 項目的值為 True 時,資料表已啟用這個選項。 如果值為 False ,此選項會停用。

啟用變更的追蹤功能時,使用 Transact-SQL 陳述式變更資料表的中繼資料結構。

2009年8月7日 星期五

動態修改CSS

Dim oLink As New System.Web.UI.HtmlControls.HtmlLink()
oLink.Href = "指定CSS檔案位置"
oLink.Attributes("rel") = "stylesheet"
oLink.Attributes("type") = "text/css"
Page.Header.Controls.Add(oLink)

2009年8月6日 星期四

VB.NET 操作 MSSQL SP 語法

Dim Conn As SqlConnection = New SqlConnection("Data Source=xxx.xxx.xxx.xxx;Initial Catalog=DATABASE name;User ID=XXX;Password=xxxxxxxx")
Dim Comm As SqlCommand = New SqlCommand("SP_InsertEvent", Conn)
Comm.CommandType = Data.CommandType.StoredProcedure
Comm.Parameters.AddWithValue("@Yym", Session("currYYM"))
Comm.Parameters.AddWithValue("@Code", "Q456")
Comm.Parameters.AddWithValue("@Name", "現在五點")
Comm.Parameters.AddWithValue("@BeginDate", "2009/08/06")
Comm.Parameters.AddWithValue("@EndDate", "2009/08/06")
Comm.Parameters.AddWithValue("@Description", "現在五點")
Comm.Parameters.AddWithValue("@PsnNo", "7777777")
Conn.Open()
Comm.ExecuteNonQuery()\\沒有回傳值
Conn.Close()