簡體   English   中英

如何在啟動時在其Form_Load中使用SQl數據庫運行應用程序

[英]How to run application with SQl database in its Form_Load in startup

我已經在Visual Studio 2010和SQL Server 2008上使用C#開發了一個應用程序。我的應用程序就像一個通知程序,當Windows在應用程序的啟動Form_Load事件中啟動Windows時出現,該程序如下所示連接到SQL數據庫

da = new SqlDataAdapter("select info_id,info_text,cat_id from info " + cat, a.GetConnectionStringByName());
SqlCommandBuilder br = new SqlCommandBuilder(da);
ds = new DataSet();
da.Fill(ds, "em");
richTextBox1.Text = "";
txt = "";
DataRow dr = GetRow();
if (dr != null)
{
    richTextBox1.Text = dr["info_text"].ToString();
    txt = richTextBox1.Text;
} 

這是我的連接字符串

<add name="Info_Bank_Project.Properties.Settings.KBankConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\KBank.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" /> 

當應用程序在系統啟動時在啟動中運行時,它會產生一個異常,指出connection timed out有人知道該異常的原因以及如何解決該異常嗎?

當您嘗試建立與數據庫的連接並且數據庫在15秒內未響應(默認值)時,發生連接超時。

如果得到這種問題,是因為您的數據庫服務器可能未在偵聽連接或您的連接字符串錯誤。

我還沒有看到以。\\ SQLEXPRESS作為源的SQL連接字符串。 我猜它指向本地主機? 如果您在Windows啟動時運行此程序,您確定在此應用程序啟動之前SQL已啟動並正在偵聽其端口嗎? 正如Icarus提到的,如果SQL花費的時間太長(默認為15秒),SQL將會超時,您可以使用連接字符串( 連接字符串MSDN)中的Connection Timeout字段來更改它。我認為更好的方法是在連接之前添加一些邏輯嘗試在繼續之前檢查是否有某些內容正在偵聽SQL端口。

在C#中,最佳答案是如何檢查TCP端口是否可用? 展示了如何在C#中執行此操作,將其轉換為VB應該相當簡單。 您只需將其置於一個循環中,該循環將休眠3秒鍾,然后重試直到端口被使用(因此是本示例的反向操作)長達20次(1分鍾),或者您想要放棄之前所希望的時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM