2017-10-24 9 views
1

自分のデータベースをメールシステムに接続する際に問題が発生しました。データベース接続とSqlDataSource接続を設定しましたが、データベースに保存されている電子メールに電子メールを送信する際に、aspx.csページで参照する方法がわかりません。他の人がすでにコメントしたようSQL Serverデータベースを電子メールシステムに接続するにはどうすればよいですか?

<asp:SqlDataSource ID="emailresult" runat="server" 
    ConnectionString='<%$ ConnectionStrings:databaseconnection %>' 
    SelectCommand ="SELECT [ID], [email], [role] FROM [emailtest]"> 
</asp:SqlDataSource> 

protected void EmailTestButton_Click(object sender, EventArgs e) 
{ 

    try 
    { 
     MailMessage mailMessage = new MailMessage(); 
     mailMessage.To.Add(""); 
     mailMessage.To.Add(""); 
     mailMessage.From = new MailAddress("[email protected]"); 
     mailMessage.Subject = "Scrum Management Studio - Role Confirmation"; 
     mailMessage.IsBodyHtml = true; 
     mailMessage.Body = "Hello, <br /><br /> You have been assigned the role of <b>[ROLE]</b> <br /><br /> \n\nKind Regards, <br />The Scrum Management Studio Team" ; 
     mailMessage.Priority = MailPriority.High; 
     SmtpClient smtpClient = new SmtpClient("smtp-isp.com"); 
     smtpClient.Send(mailMessage); 
     Response.Write("Email has been successfully sent"); 
    } 
    catch (Exception ex) 
    { 
     Response.Write("Could not send the email - error: " + ex.Message); 
    } 
} 
+4

からのDataTableとクエリにemailresult」SqlDataSourceコントロールは、THINK THINK THINK:あなたは、データベースから文字列を返す方法(電子メール)を書いて、あなたの新しいMailAddress(stringreturned)でそれを使用することができます。 –

+0

あなたはここにこだわっていますか?電子メールアドレスを読む - > MailAddressでそれを設定する - >電子メールを送信する。 – Liam

+0

あなたは手伝っていません! – SHarvey43

答えて

0

、あなたは別の部分で何をしたいのかに分割する必要があります。

  1. は、電子メールを送信してデータベース
  2. からメールアドレスを取得します。 (既にそこ)あなたはこのような何か(テストしていない)される、あなたがSqlDataSourceコントロールから電子メールを取得するにはどのようにそれを見つけるために何をしたいので

、:あなたは "変換することができる

DataView dv = emailresult.Select(DataSourceSelectArguments.Empty); 
DataTable dt = dv.ToTable(); 
String Email = Convert.ToString(dt.rows[0]["Email"]); 
1

そこ

var dt = ((DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty)).Table; 
var emails = from e in dt.AsEnumerable() 
       where e.Field<int>("ID") == 1 
       select e.email; 

foreach (var email in emails) 
{ 
    mailMessage.To.Add(email); 
} 
+0

詳細を教えてください。ちょうど基本的なプログラマーです。 – SHarvey43

+0

データソース上の選択ステートメントと一致するようにコードを変更しました。コードの上にSystem.Linqを使用していることを確認してください。 – proxies

関連する問題