0

SqlDataSource でユーザーの電子メール ID を取得しており、この電子メール ID に電子メールを送信したいと考えています。以下は、SQL データ ソースのコードです。

 <asp:SqlDataSource ID="UserDetailsSqlDataSource" runat="server" 
    ConnectionString="<%$ ConnectionStrings:UserDetailsConnectionString %>" 
    SelectCommand="SELECT [LoweredEmail] FROM [vw_aspnet_MembershipUsers] WHERE     ([UserName] = @UserName)">
   <SelectParameters>
        <asp:CookieParameter CookieName="userName" Name="UserName" Type="String" />
    </SelectParameters>
</asp:SqlDataSource>

以下は、メールを送信するためのコードです。

   MailMessage mail = new MailMessage();
   mail.To.Add();

mail.To.Add(); で取得した電子メール ID を取得する方法がわかりません。

4

2 に答える 2

1

次のいずれかを返すSelecta のメソッドをプログラムで呼び出すことができます。SqlDataSource

  • DataViewDataSourceMode設定されている場合DataSet
  • IDataReaderDataSourceMode設定されている場合DataReader

を使用した例を次に示しますSqlDataReader

var args = System.Web.UI.DataSourceSelectArguments.Empty;
var reader = (SqlDataReader) UserDetailsSqlDataSource.Select(args);

while(reader.Read()) {
   //do something with each returned record, e.g.
   MailMessage mail = new MailMessage();
   mail.To.Add(reader["LoweredEmail"].ToString());
}
于 2012-04-27T02:04:37.367 に答える
1

これを試してください。パラメーターを渡すようにコードを変更できます。

        string temp = string.Empty;
        string cmdText = "SELECT [LoweredEmail] FROM [vw_aspnet_MembershipUsers] WHERE     ([UserName] = @UserName)"
        using (SqlConnection conn = new SqlConnection(ConnectionString))
        {
            conn.Open();
            using (SqlCommand cmd = new SqlCommand(cmdText, conn))
            {
                cmd.CommandType = CommandType.Text;
                         cmd.Parameters.AddWithValue(@UserName, UserName);
                using (SqlDataReader reader = cmd.ExecuteReader())
                {
                    while(reader.Read())
                    {
                        temp = reader.GetValue(0).ToString(); // email ID
                    }
                }
            }
            conn.Close();
于 2012-04-27T12:21:20.073 に答える