2012-05-07 47 views
1

我正在尋找代碼來填充一個Microsoft Sql Server數據庫,使用我的電子郵件收件箱,我希望它可以通過Windows服務完成,因此用戶不知道它的發生。如何使用Windows服務使用電子郵件填充數據庫?

如何讓我的Windows服務填充我的數據庫?

我的數據庫稱爲Email_Log, 隨着表: EMAIL_ID e_To e_From e_Subject e_Date

我的插入代碼看起來像。

INSERT INTO Email_Log 
(Email_ID, e_To, e_From, e_Subject, e_Date) 
VALUES 
(Data, data, data, data, data) 

我已經使用OpenPop之前創建Web服務來檢索郵件,所以我知道該怎麼做,我用Windows服務EXP是......沒有與數據庫很少。

我正在尋找關於如何做到這一點的一些示例代碼?或一些有用的鏈接到景點做了類似的事情。我在網上看了一遍,在我試圖做的事上找不到任何幫助。我只需要一個推動開始。下面的例子是最好的開始。

+1

什麼樣的電子郵件收件箱都你在用嗎?交換/展望?或者是其他東西?您應該在首先閱讀電子郵件,將一些數據寫入數據庫,創建Windows服務,然後將它們集成在一起時分解問題。 –

+0

Gmail,是的,我認爲我要首先讓我的服務接收我想先填充數據庫的值。因此,留下數據庫的人口應該最後?我不必爲此擔心?我害怕我錯過了一些步驟。 – Pomster

+0

在Windows服務中,我將代碼檢索電子郵件值。例如,我會把它放在event_log中嗎? – Pomster

回答

4
  • 用於在.NET中創作Windows服務=>here
  • 對於.NET訪問SQL數據庫=>here

因此,例如,這裏有一個樣本INSERT查詢如何可能看起來像使用普通的ADO.NET:

using (var conn = new SqlConnection("your connection string to the database")) 
using (var cmd = conn.CreateCommand()) 
{ 
    conn.Open(); 
    cmd.CommandText = 
     @" 
     INSERT INTO Email_Log 
     (Email_ID, e_To, e_From, e_Subject, e_Date) 
     VALUES 
     (@id, @to, @from, @subject, @date) 
     "; 
    cmd.Parameters.AddWithValue("@id", 123); 
    cmd.Parameters.AddWithValue("@to", "[email protected]"); 
    cmd.Parameters.AddWithValue("@from", "[email protected]"); 
    cmd.Parameters.AddWithValue("@subject", "some subject"); 
    cmd.Parameters.AddWithValue("@date", DateTime.Now); 
    cmd.ExecuteNonQuery(); 
} 
+0

好的很好,看起來不錯,好吧,我會嘗試開始讓我的服務用正確的方式填充(()),(在),(從),(在)主題,(在)日期)信息。非常感謝:D – Pomster

+0

我將如何獲得連接字符串? – Pomster

+0

你可以將它放在app.config文件的[connectionStrings section](http://www.ezzylearning.com/tutorial.aspx?tid=8067328)中,然後使用'ConfigurationManager.ConnectionStrings [「MyDb」]檢索它.ConnectionString',其中'MyDb'是您用來將連接字符串存儲在您的配置文件中的密鑰。 –

相關問題