powered by simpleCommunicator - 2.0.57     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Отправка SMS по GSM модему
15 сообщений из 15, страница 1 из 1
Отправка SMS по GSM модему
    #38116854
komil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.

Написал отрывок который берет данные с БД и отправляет SMS через модем.
Но это происходит по нажатию кнопки Отправить, как сделать цикл чтобы допустим каждые 10-мин проверялась база и при существовании данных отправлялось?

Буду очень признателен если укажите куда копать.
Спасибо.

Собственно код:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
private void btnSendSMS_Click(object sender, EventArgs e)
        {
            
            try
            {

                SqlConnection xConnection = new SqlConnection("Data Source = (local); Initial Catalog = db; User Id = user; Password = user;");
                xConnection.Open();
                SqlCommand SelectCommand = new SqlCommand("Select 1, 2 from buffer where Checked=0", xConnection);
                SqlDataReader Reader = SelectCommand.ExecuteReader();
                while (Reader.Read())
                {
                    txtSIM.Text = Reader["1"].ToString();
                    txtMessage.Text = Reader["2"].ToString();

                    if (objclsSMS.sendMsg(this.port, this.txtSIM.Text, this.txtMessage.Text))
                    {

                        this.statusBar1.Text = "Сообщение успешно отправлено";
                        Reader.Close();
                        
                    }
                    else
                    {

                        this.statusBar1.Text = "Ошибка при отправке сообщения";
                    }
                }

               
            }
            catch (Exception ex)
            {
                ErrorLog(ex.Message);
            }
        }
...
Рейтинг: 0 / 0
Отправка SMS по GSM модему
    #38116857
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Для начала - в таймеры и потоки
...
Рейтинг: 0 / 0
Отправка SMS по GSM модему
    #38116892
komil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cat2Для начала - в таймеры и потоки

Спасибо, буду копать.

Тут возникает еще один вопрос, как сделать Update с параметрами выборки которая сделана в это коде через Select?

Например здесь в коде я делаю SELECT 1,2 from buffer, как мне сделать Update выбранных первым запросом значений в таблице buffer?
...
Рейтинг: 0 / 0
Отправка SMS по GSM модему
    #38117262
ZVER-10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komil,
у вас много опытных программеров в вавилоне?
извините что не в тему
...
Рейтинг: 0 / 0
Отправка SMS по GSM модему
    #38117351
komil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ZVER-10komil,
у вас много опытных программеров в вавилоне?
извините что не в тему


Не понял?
...
Рейтинг: 0 / 0
Отправка SMS по GSM модему
    #38117356
komil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
komilZVER-10komil,
у вас много опытных программеров в вавилоне?
извините что не в тему


Не понял?

ааа вы про адрес почти :) это было давно и не правдой. Сменил адрес чтобы не ввести народ в заблуждение :)
...
Рейтинг: 0 / 0
Отправка SMS по GSM модему
    #38118276
ZVER-10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komilааа вы про адрес почти :) это было давно и не правдой. Сменил адрес чтобы не ввести народ в заблуждение :)т.е. ща не вавилоне? а вообще в 2шанбе? я иногда нуждаюсь в консультации, не знаю где у нас обитают профессионалы.
...
Рейтинг: 0 / 0
Отправка SMS по GSM модему
    #38118742
komil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ZVER-10komilааа вы про адрес почти :) это было давно и не правдой. Сменил адрес чтобы не ввести народ в заблуждение :)т.е. ща не вавилоне? а вообще в 2шанбе? я иногда нуждаюсь в консультации, не знаю где у нас обитают профессионалы.

Да как не странно пишу на sql.ru и живу в Душанбе :) позвони поговорим 111133 вавилон.
...
Рейтинг: 0 / 0
Отправка SMS по GSM модему
    #38118882
komil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
komilCat2Для начала - в таймеры и потоки

Спасибо, буду копать.

Тут возникает еще один вопрос, как сделать Update с параметрами выборки которая сделана в это коде через Select?

Например здесь в коде я делаю SELECT 1,2 from buffer, как мне сделать Update выбранных первым запросом значений в таблице buffer?

В общем посоветовали поработать с List-ом

Наклепал кое что но все равно не идет процесс.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
   SqlConnection xConnection = null;
            SqlDataReader Reader = null;
            SqlCommand SelectCommand = null;
            List<string> catID = new List<string>();
            try
            {
                
                xConnection = new SqlConnection("Data Source = (local); Initial Catalog = DiscountSystem; User Id = adm; Password = in;");
                xConnection.Open();
                SelectCommand = new SqlCommand("Select 1, 2from buffer where Checked=0", xConnection);
                Reader = SelectCommand.ExecuteReader();
                while (Reader.Read())
                {
                    txtSIM.Text = Reader["Number"].ToString();
                    txtMessage.Text = "Kod Vashego kupona - " + Reader["Code"].ToString()+" - www.arzon.tj";
                    catID.Add(Convert.ToString(Reader["Code"].ToString()));
                    if (objclsSMS.sendMsg(this.port, this.txtSIM.Text, this.txtMessage.Text))
                    {
                        this.statusBar1.Text = "Сообщение успешно отправлено";
                    }
                    else
                    {

                        this.statusBar1.Text = "Ошибка при отправке сообщения";
                    }
                    Reader.Close();
                    SqlCommand UpdateCommand = new SqlCommand("UPDATE buffer set Checked=1 WHERE Code = @Code", xConnection);
                    UpdateCommand.Parameters.AddWithValue("@Code", catID);
                    int rows = UpdateCommand.ExecuteNonQuery();
                }
            }
            catch (Exception ex)
            {
                if (xConnection != null)
                    xConnection.Close();
                ErrorLog(ex.Message);
            }
        }
...
Рейтинг: 0 / 0
Отправка SMS по GSM модему
    #38118925
ZVER-10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
конецно не пойдет.
komil
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
   SqlConnection xConnection = null;
            SqlDataReader Reader = null;
            SqlCommand SelectCommand = null;
            List<string> catID = new List<string>();
            try
            {
                
                xConnection = new SqlConnection("Data Source = (local); Initial Catalog = DiscountSystem; User Id = adm; Password = in;");
                xConnection.Open();
                SelectCommand = new SqlCommand("Select 1, 2from buffer where Checked=0", xConnection);//----что это, Select 1, 2from?
                Reader = SelectCommand.ExecuteReader();
                while (Reader.Read())
                {
                    txtSIM.Text = Reader["Number"].ToString();
                    txtMessage.Text = "Kod Vashego kupona - " + Reader["Code"].ToString()+" - www.arzon.tj";
                    catID.Add(Convert.ToString(Reader["Code"].ToString()));
                    if (objclsSMS.sendMsg(this.port, this.txtSIM.Text, this.txtMessage.Text))
                    {
                        this.statusBar1.Text = "Сообщение успешно отправлено";
                    }
                    else
                    {

                        this.statusBar1.Text = "Ошибка при отправке сообщения";
                    }
                    Reader.Close();//---селект вернет 1 строку что ли?
                    SqlCommand UpdateCommand = new SqlCommand("UPDATE buffer set Checked=1 WHERE Code = @Code", xConnection);
                    UpdateCommand.Parameters.AddWithValue("@Code", catID);//---а это что? 
                    int rows = UpdateCommand.ExecuteNonQuery();
                    //---а нафига вообще List, если обновление происходит в этой же итерации?!
                }
            }
            catch (Exception ex)
            {
                if (xConnection != null)
                    xConnection.Close();
                ErrorLog(ex.Message);
            }
        }
...
Рейтинг: 0 / 0
Отправка SMS по GSM модему
    #38119011
komil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ZVER-10конецно не пойдет.
komil
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
   SqlConnection xConnection = null;
            SqlDataReader Reader = null;
            SqlCommand SelectCommand = null;
            List<string> catID = new List<string>();
            try
            {
                
                xConnection = new SqlConnection("Data Source = (local); Initial Catalog = DiscountSystem; User Id = adm; Password = in;");
                xConnection.Open();
                SelectCommand = new SqlCommand("Select 1, 2from buffer where Checked=0", xConnection);//----что это, Select 1, 2from?
                Reader = SelectCommand.ExecuteReader();
                while (Reader.Read())
                {
                    txtSIM.Text = Reader["Number"].ToString();
                    txtMessage.Text = "Kod Vashego kupona - " + Reader["Code"].ToString()+" - www.arzon.tj";
                    catID.Add(Convert.ToString(Reader["Code"].ToString()));
                    if (objclsSMS.sendMsg(this.port, this.txtSIM.Text, this.txtMessage.Text))
                    {
                        this.statusBar1.Text = "Сообщение успешно отправлено";
                    }
                    else
                    {

                        this.statusBar1.Text = "Ошибка при отправке сообщения";
                    }
                    Reader.Close();//---селект вернет 1 строку что ли?
                    SqlCommand UpdateCommand = new SqlCommand("UPDATE buffer set Checked=1 WHERE Code = @Code", xConnection);
                    UpdateCommand.Parameters.AddWithValue("@Code", catID);//---а это что? 
                    int rows = UpdateCommand.ExecuteNonQuery();
                    //---а нафига вообще List, если обновление происходит в этой же итерации?!
                }
            }
            catch (Exception ex)
            {
                if (xConnection != null)
                    xConnection.Close();
                ErrorLog(ex.Message);
            }
        }



В одной итерации не получится сделать апдейт, этот вариант рассмотрен в первом посте. А List нужен для того чтобы держать данные для апдейта.

UpdateCommand.Parameters.AddWithValue("@Code", catID) -- это думаю понятно, это источник данных для апдейта.
...
Рейтинг: 0 / 0
Отправка SMS по GSM модему
    #38119406
WitC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
komilВ одной итерации не получится сделать апдейт, этот вариант рассмотрен в первом посте. А List нужен для того чтобы держать данные для апдейта.

UpdateCommand.Parameters.AddWithValue("@Code", catID) -- это думаю понятно, это источник данных для апдейта.

List явно не нужен... Через SqlCommand тоже заморочно, много отслеживать надо...
пример ниже писал в блокноте, наверняка есть неточности и без оптимальности... на мой взгляд так легче
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
txtSIM.DataBindings.Clear();
txtMessage.DataBindings.Clear();

SqlDataAdapter dataDA = new SqlDataAdapter("select Top 1 [code], [Number] from buffer where Checked=0","твой ConnectionString");
SqlCommandBuilder dataCmdB = new SqlCommandBuilder(dataDA);

DataTable tblRes = new DataTable("Result");
dataDA.fill(tblRes);

if (tblRes.rows.count>0)
{
txtSIM.DataBindings.Add("Text",tblRes,"Number",true,DataSourceUpdateMode.never);
txtMessage.DataBindings.Add("Text",tblRes,"Code",true,DataSourceUpdateMode.never);

tblRes.Rows[0].Item("Checked")=1;

if (objclsSMS.sendMsg(this.port, this.txtSIM.Text, this.txtMessage.Text) && dataDA.Update(tblRes)>0)
{
this.statusBar1.Text = "Сообщение успешно отправлено";
}
else
{
this.statusBar1.Text = "Ошибка при отправке сообщения";
}

}
else
{
messagebox.show("Нет свободных купонов!");
}
...
Рейтинг: 0 / 0
Отправка SMS по GSM модему
    #38119438
WitC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ZVER-10конецно не пойдет.
komil
Код: c#
1.
2.
3.
4.
5.
6.
7.
               catch (Exception ex)
            {
                if (xConnection != null)
                    xConnection.Close();
                ErrorLog(ex.Message);
            }
        }



...ну и Коннекшин и ДатаРиадер надо закрывать (при условии их инициализации) в блоке Finally, а не Catch...
...
Рейтинг: 0 / 0
Отправка SMS по GSM модему
    #38119619
ZVER-10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komilUpdateCommand.Parameters.AddWithValue("@Code", catID) -- это думаю понятно, это источник данных для апдейта.неа, не понятно:) целый лист в параметр?
...
Рейтинг: 0 / 0
Отправка SMS по GSM модему
    #38119633
ZVER-10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komilВ одной итерации не получится сделать апдейт, этот вариант рассмотрен в первом посте. А List нужен для того чтобы держать данные для апдейта. согласен. но вы обновили в той же. если в той же обновить, достаточно в переменную типа инт держать значение ИД.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Отправка SMS по GSM модему
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]