如何根据MySQL查询结果通过foreach循环发送SMS?

时间:2019-08-14 10:21:32

标签: c# mysql sms gsm

我有一个GSM调制解调器wavecom fastrack m1306b,我还制作了一个示例Windows窗体应用程序来发送SMS,问题是我不知道如何继续使用foreach循环发送SMS,我的数据库中有一个表存储的电话号码,以及对我的数据库类的查询以检索它。

db = new DBConnect();
var eventMessage = db.getEventContents();
string message = String.Join(Environment.NewLine, eventMessage);
if (this.port.IsOpen)
{
        List<string> numbers = new List<string>(db.getPhoneNumbers());
        foreach (string num in numbers)
        {
            try
            {
                sms.sendMsg(this.port, num, message);
                i++;
                sendingProgress.Value = i * sendingProgress.Maximum / numbers.Count();
                MessageBox.Show("Announcement Sent to :" + num);

            }
            catch (Exception ex)
            {
                i++;
                sendingProgress.Value = i * sendingProgress.Maximum / numbers.Count();
                MessageBox.Show("Failed to send announcement to :" + num);
                ErrorLog(ex.Message);
            }
        }
}

下面是我的DBConnect类中的函数:

public IEnumerable<string> getPhoneNumbers()
{
    string query = "SELECT contact_no FROM students";
    using (var connection = new MySqlConnection(connectionString))
    using (var cmd = new MySqlCommand(query, connection))
    {
        connection.Open();
        using (var reader = cmd.ExecuteReader())
        {
            while (reader.Read())
            {
                string numbers = (string)reader["contact_no"];
                yield return numbers;
            }
        }
        connection.Close();
    }
}

public IEnumerable<string> getEventContents()
{
    DateTime eventday = new DateTime();
    eventday = DateTime.Now;
    int day = eventday.Day;
    int month = eventday.Month;
    string query = "SELECT event_header,event_content FROM events WHERE DAY(date) = '" + day + "' AND MONTH(date)='" + month + "' LIMIT 1";
    connection = new MySqlConnection(connectionString);
    connection.Open();
    using (cmd = new MySqlCommand(query, connection))
    {
        reader = cmd.ExecuteReader();
        while (reader.Read())
        {
            string eventAnnouncement = (string)reader["event_header"] + "\n\n" + (string)reader["event_content"] + "\n\n";
            yield return eventAnnouncement;
        }
    }
}

我不知道为什么它不会发送,到目前为止,我已经使用CodeProject的示例项目测试了发送短信的过程,并且可以正常工作,我检查了ErrorLog.txt文件,并说没有收到成功消息,有人可以向我指出错误,这将对我有很大的帮助。

0 个答案:

没有答案