PDA

View Full Version : مشکل در رویداد کلیک باتون برای ارسال اطلاعات هر سطر گریدویو به ایمیل



gheysar14
چهارشنبه 02 مرداد 1387, 10:29 صبح
من به باتون(btnSend) از نوع templatefield تو هر سطر گریدویو دارم که میخوام با کلیلک بر اون اطلاعات اون سطر رو برای یه گروه از افراد میل بشه من از کد زیر استفاده کردم ولی موقع کلیلک هیچ اتفاقی نمیافته
سورس کد VB


Imports System.Data.SqlClient
Imports System.Data.Sql
Imports System.Data
Imports System.IO
Imports System.Collections
Partial Class ArchiveNewsletter
Inherits System.Web.UI.Page
Dim ds As New DataSet
Dim objConnection As New SqlConnection("Data Source=.;Initial Catalog=SiteDB;User ID=sa; password=")
Dim objCommand, cmd As New SqlCommand()

Protected Sub GridView2_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs ) Handles GridView2.RowCommand

If e.CommandName = "btnSend" Then

Dim i As Integer
Dim email As String
Dim listMail As New ArrayList()
Dim dr As SqlDataReader
Dim smtp As New System.Net.Mail.SmtpClient("mail.myDomain.com")
objCommand.Connection = objConnection
objCommand.CommandType = CommandType.Text
objCommand.CommandText = "SELECT [email] FROM [tblUser]"
cmd.Connection = objConnection
cmd.CommandType = CommandType.Text
cmd.CommandText = "SELECT [body] FROM [tblNewsletter] WHERE ID='" + e.CommandArgument.ToString() + "'"
objConnection.Open()
dr = objCommand.ExecuteReader
While (dr.Read)
i = i + 1 - 1
email = dr.Item(i).ToString
listMail.Add(email)
End While
dr.Close()
Try
For Each email In listMail
Dim mail As New System.Net.Mail.MailMessage()

mail.IsBodyHtml = True
mail.BodyEncoding = Encoding.GetEncoding("UTF-8")
mail.From = New System.Net.Mail.MailAddress("gheysar@myDomain.com")
mail.Subject = GridView2.SelectedRow.Cells(1).Text.ToString
mail.To.Add(email)
mail.Body = cmd.ExecuteScalar
smtp.Host = "mail.myDoamin.com"

smtp.Send(mail)
Next
objConnection.Close()
Label1.Text = "Message Sent Successfully"
Catch ex As Exception
Label1.Text = ex.Message.ToString
objConnection.Close()
End Try

End If

End Sub
End Class


کد دیزاین:



<asp:TemplateField HeaderText="ارسال">
<ItemTemplate>
<asp:Button ID="btnSend" runat="server" Font-Names="Tahoma" Font-Size="8pt"
Text="ارسال" CommandName="btnSend" CommandArgument='<%# Eval("IDNewsletter") %>' />
</ItemTemplate>
</asp:TemplateField>

milade
چهارشنبه 02 مرداد 1387, 20:41 عصر
چرا گرید؟
چرا خودت کد نمی نویسی؟

nazaninam
چهارشنبه 02 مرداد 1387, 22:57 عصر
چرا گرید؟
چرا خودت کد نمی نویسی؟
آقا شما چی میگی ؟ این بنده خدا کارش کاملا درسته !!! خودت کد نمی نویسی یعنی چی

دوست عزیز gheysar14 کدهاتون و روشتون درسته ! آیا خطایی دریافت می کنی؟ اصلا رویداد Command اجرا میشه؟

gheysar14
پنج شنبه 03 مرداد 1387, 09:49 صبح
چرا گرید؟
چرا خودت کد نمی نویسی؟

شما اگه مسئله من رو کامل متوجه شدید کدش بذارید تا ما هم استفاده کنیم.

gheysar14
پنج شنبه 03 مرداد 1387, 09:58 صبح
آقا شما چی میگی ؟ این بنده خدا کارش کاملا درسته !!! خودت کد نمی نویسی یعنی چی

دوست عزیز gheysar14 کدهاتون و روشتون درسته ! آیا خطایی دریافت می کنی؟ اصلا رویداد Command اجرا میشه؟

خطا نمیگیرم. دقیقاً وارد Command نمیشه
اگه شما راه حل بهتری سراغ دارین که بشه این کار رو انجام بده بهم بگین :لبخندساده:
یه بار هم اومدم برای این کار از رویداد Butoon Click استفاده کردم ولی نشد کد اون هم این بود



Protected Sub btnSend_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim i As Integer
Dim email As String
Dim listMail As New ArrayList()
Dim dr As SqlDataReader
Dim smtp As New System.Net.Mail.SmtpClient("mail.myDomain.com")
' Dim strFileName As String
'Dim strFileText As String = String.Empty
' strFileText = ""
objCommand.Connection = objConnection
objCommand.CommandType = CommandType.Text
objCommand.CommandText = "SELECT [email] FROM [tblUser]"
cmd.Connection = objConnection
cmd.CommandType = CommandType.Text
cmd.CommandText = "SELECT [body] FROM [tblNewsletter] WHERE ID='" + GridView2.SelectedRow.Cells(3).Text + "'"
objConnection.Open()
dr = objCommand.ExecuteReader
While (dr.Read)
i = i + 1 - 1
email = dr.Item(i).ToString
listMail.Add(email)
End While
dr.Close()
Try
For Each email In listMail
Dim mail As New System.Net.Mail.MailMessage()

mail.IsBodyHtml = True
mail.BodyEncoding = Encoding.GetEncoding("UTF-8")
mail.From = New System.Net.Mail.MailAddress("gheysar@myDomain.com")
mail.Subject = GridView2.SelectedRow.Cells(1).Text.ToString
mail.To.Add(email)
mail.Body = cmd.ExecuteScalar
smtp.Host = "mail.myDoamin.com"

smtp.Send(mail)
Next
objConnection.Close()
Label1.Text = "Message Sent Successfully"
Catch ex As Exception
Label1.Text = ex.Message.ToString
objConnection.Close()
End Try
End Sub


تو خط GridView2.SelectedRow.Cells(3).Text ارور میداد :
object reference not set to an instant of an object

gheysar14
شنبه 05 مرداد 1387, 10:37 صبح
کیست مرا یاری کند؟؟؟؟؟؟؟؟:گریه:

gheysar14
یک شنبه 06 مرداد 1387, 09:18 صبح
موارد شبیه به سوال من هم تو سایت پاسخ داده نشده. یعنی واقعاً کسی بلد نیست؟
جناب راد لطفاً خودتون راهنمایی کنید
ممنون