Adityakumar2318 Ответов: 1

Как назначить динамические данные в ячейке datagridview с помощью кода C#


I have a datagridview and it has 5 rows and I have bind it from database.

I am sending an email and i want to show dynamically in satus column only "Sent".

I dont want to update and insert any value in database. I want to do it from code only.

What I have tried:

I have tried so far.

<pre>public void sendMail()
        {
            foreach (DataGridViewRow rows in grdsend.Rows)
            {   
                    var subject = rows.Cells[0].Value.ToString();
                    var content = rows.Cells[1].Value.ToString();
                    var from = rows.Cells[2].Value.ToString();
                    var senderPassword = rows.Cells[3].Value.ToString();
                    var senderID = rows.Cells[4].Value.ToString();
                    var to = rows.Cells[5].Value.ToString();
                    var date = rows.Cells[6].Value.ToString();                

               var status = rows.Cells[7].Value = "Sending";
                // Now i want status variable value  "Sending" to show in datagridview cell



                MailMessage mail = new MailMessage();
                    SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
                    mail.To.Add(to.ToString());
                    mail.Subject = subject.ToString();
                    mail.Body = content.ToString();
                    mail.From = new MailAddress(from.ToString());
                    SmtpServer.Port = 587;
                    SmtpServer.EnableSsl = true;
                    SmtpServer.Credentials = new  System.Net.NetworkCredential(from.ToString(), senderPassword.ToString());
                    SmtpServer.Send(mail);
                    MessageBox.Show("Mail sent");
                }
             
            }

1 Ответов

Рейтинг:
7

Garth J Lancaster

Вместо того чтобы использовать свой

MessageBox.Show("Mail sent");
вы можете добавить несвязанного столбца в datagridview и Update, которая если и по почте послать будет успешным - вы не на самом деле проверить это на данный момент, возможно, вам нужно попробовать...catch блок вокруг и по почте послать или переработать почте отправить на функцию, которая возвращает bool, если письмо отправить успешен

эти ссылки могут быть полезны для добавления несвязанного столбца в ваш связанный datagridview

Как добавить несвязанный столбец в элемент управления DataGridView Windows Forms с привязкой к данным[^]

C# DataGridView-включает как связанные, так и несвязанные данные-YouTube[^]


Adityakumar2318

"Невозможно привести объект типа "система".Окна.Формы.DataGridViewRow 'to type' System.В разделе iconvertible'."}

int loopCount = 0;

по каждому элементу (ячейки datagridviewrow строк в grdsend.Строк)
{
int iRow = преобразовать.ToInt32 (строки);


}
// Невозможно преобразовать
//Getting error {"невозможно привести объект типа' System.Окна.Формы.DataGridViewRow 'to type' System.В разделе iconvertible'."}

Garth J Lancaster

Я понятия не имею, как этот код связан с вопросом, который вы впервые задали, или с тем, что я предложил вам сделать - добавить несвязанный столбец ...

int iRows = преобразовать.ToInt32 (строки);

очевидно, это неверно, но вы не объяснили, в чем его актуальность/что вы пытаетесь здесь сделать - мы не можем видеть ваш экран, мыслительные процессы и т. д., Поэтому вы должны быть ясны, логичны и лаконичны в своих объяснениях

Adityakumar2318

Спасибо. Мой вопрос решен.

Adityakumar2318

foreach (DataGridViewRow строки в dgvAutoManualMailDetails.Строки)
{

строка = строки.Ячейки[0].Значение.Метод toString();
строка = строки.Клеток[2].Значение.Метод toString();
строки = строки.Клеток[3].Значение.Метод toString();
содержимое строки = строки.Клеток[4].Значение.Метод toString();
строковый пароль = строки.Клетки[1].Значение.Метод toString();
//Статус

dgvAutoManualMailDetails.Строки[0].Ячейки[5]. Значение = " Отправка Почты!!!";
//dgvAutoManualMailDetails.Строки[0].Ячейки[5]. Значение = " Отправка..";

bool check = IsManualMailSend(subject, content, from, to, password);
if (check = = true)
{
// статус " отправлено";
dgvAutoManualMailDetails.Строки[0].Ячейки[5]. Значение = " Отправлено";
}

Я получаю нулевое значение в этой переменной dgvAutoManualMailDetails.Строки[0].Клеток[5].Значение . Я назначаю отправку и отправку, поэтому я должен получить эти значения.

Adityakumar2318

Когда я ставлю foreach loop dgvAutoManualMailDetails.Строки[0].Ячейки[5]. Значение = " Отправлено"

Я получаю фактическую стоимость.