Hogyan küldjünk SMS-t C#-ból SQL Server használatával

Letöltés: Sending_SMS_through_MS_SQL_Server.zip

Ismerje meg, hogyan küldhet SMS-t sorok beszúrásával egy Microsoft SQL adatbázisba egy C#.NET alkalmazás segítségével. Ez a technológia alapvető C#.NET és SQL ismerettel rendelkező fejlesztőknek szól. A letölthető forráskód segítségével gyorsan belekezdhet.

A következő fejezetekben megtalálhatja a szükséges előfeltételeket és részletes magyarázatot a kód használatáról. Egy hasznos munkafolyamat-diagram bemutatja az alapvető kapcsolatot a C# alkalmazás felhasználója és a címzett telefonja között.

A kód hasznos lehet azoknak, akik szeretnének

  • SMS funkciót integrálni a C# alkalmazásukba.
  • automatizált SMS értesítést beépíteni.
  • termékeiket biztosítani SMS bejelentkezéssel.

Előfeltételek

A rendszer szoftverkövetelményeit a következő táblázat tartalmazza. Kérjük, töltse le az SMS Gateway-t és telepítse az SMS Gateway szoftvert .NET keretrendszer 4.5 mellett, valamint Microsoft Visual Studio-t a kód futtatásához.

Operációs rendszer: Windows 11, Windows 10, Windows 8, Windows 7, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2008 R2, Windows Vista
Alapszoftver követelmények: .NET Framework 4.5
Ozeki SMS Gateway
Microsoft SQL Server 2016 Express Edition vagy újabb Microsoft SQL Server verziók
Fejlesztői platform: Microsoft Visual Studio

Hogyan működik

Először is telepítenie kell az Ozeki SMS Gateway-t és létre kell hoznia egy Adatbázis Felhasználót az SMS Gateway-ben. Kapcsolja össze a felhasználót az MSSQL adatbázisával. Az elküldendő SMS üzenetek az 'ozekimessageout' nevű kimenő üzenetek SQL táblából lesznek kiválasztva, amely alapértelmezés szerint így hívódik.

Ezután telepítenie kell egy C#.NET környezetet. A C# alkalmazása csatlakozhat az MSSQL adatbázisához és beszúrhat SMS üzeneteket a kimenő üzenetek SQL táblájába.

Győződjön meg róla, hogy az Ozeki SMS Gateway csatlakozik a GSM hálózathoz egy GSM modem vagy bármely IP SMS szolgáltató segítségével az interneten keresztül. Például az CIMD2 vagy UCP/EMI nagyon népszerű szolgáltatói kapcsolatok.

A C# és MSSQL kapcsolat munkafolyamatát az 1. ábrán láthatja.

üzenetfolyam egy mobiltelefonról a c sharp alkalmazásába és vissza
1. ábra - Üzenetfolyam egy mobiltelefonról a C# alkalmazásába és vissza

Tehát alapvetően a Microsoft SQL Server elérhető mind a C# alkalmazásából, mind az Ozeki SMS Gateway-ből. Minden bejövő és kimenő üzenet az MSSQL Serveren tárolódik további felhasználás céljából.

A megfelelő kódok hozzáadásával a C# alkalmazása csatlakozhat az SQL adatbázisához, hogy képes legyen új sorokat beszúrni a kimenő üzenetek táblájába és bejövő üzeneteket olvasni.

Az Ozeki SMS Gateway Adatbázis Felhasználója képes olvasni a kimenő üzenetek tábláját SMS üzenetek küldéséhez és új sorokat beszúrni a bejövő üzenetek táblájába más felhasználók számára. Például a C# alkalmazás felhasználója elolvashatja azt.

Hogyan állítsa be az MSSQL Serverét

1. lépés: Telepítse a Microsoft SQL Server 2016 Express Edition-t
2. lépés: Indítsa el a Microsoft SQL Server 2016 Express Edition-t és jelentkezzen be.
3. lépés: Kapcsolja be a szerver hitelesítést, hogy mindig adatbázis felhasználónevet és jelszót kérjen. (Rövid segítség)
4. lépés: Hozzon létre adatbázist és adjon select, insert, update, delete jogosultságokat egy felhasználónak. (Rövid segítség)

Adatbázis Felhasználó hozzáadása az Ozeki SMS Gateway-hez

1. lépés: Indítsa el az Ozeki 10 Képes segítség)
2. lépés: Indítsa el az Ozeki SMS Gateway-t az Ozeki 10 asztaláról.
3. lépés: Telepítsen egy Adatbázis Felhasználót és állítsa be a kapcsolati karakterláncot. (Rövid segítség)

A letöltött C# kód használata

1. lépés: Töltse le a zip fájlt és csomagolja ki.
2. lépés: Állítsa be az SQL adatbázis kapcsolati adatait a 'DatabaseHandling.cs' fájlban. (Rövid segítség)
3. lépés: Indítsa el az Ozeki 10 szolgáltatást, ha nem fut. (Rövid segítség)
4. lépés: Építse meg és futtassa a projektet a Microsoft Visual Studio-ban
5. lépés: Megjelenik egy ablak. Kattintson a Üzenet összeállítása gombra.
Töltse ki a címzett és üzenet szöveg mezőket és kattintson a 'Küldés' gombra. (Rövid segítség)

Hogyan működik a példakód

Az oldal tetején letölthető kód üzeneteket tud beszúrni az 'ozekimessageout' táblába. Az Ozeki SMS Gateway Adatbázis Felhasználója periodikusan ellenőrzi az 'ozekimessageout' táblát új üzenet sorok keresésére és elküldi őket a címzett telefonjára. Minden üzenet sornak van egy állapot attribútuma. Az SMS üzenet elküldése után az állapot 'Send'-ről 'Sent'-re változik.

Ne felejtse el ellenőrizni, hogy a Microsoft SQL szerver fut-e, és módosítsa a szerver kapcsolati adatait a 'DatabaseHandling.cs' fájlban, amelyet a példa projektben talál.

A példakód C# osztályai

MainForm.cs (2. ábra):
Ez az osztály tartalmazza az első megnyíló ablakot. Ahogy a 2. ábrán látható, két tábla tartalmát tudja megjeleníteni. Ezt a tartalmat egy SELECT utasítás olvassa ki az 'ozekimessageout' és 'ozekimessagein' táblákból. Tartalmaz két 'Frissítés' gombot és egy 'Üzenet összeállítása' gombot is. Nyomja meg a következő osztály, a 'ComposeMessageForm.cs' használatához.

a gui a mainform cs-ből generálva
2. ábra - A 'MainForm.cs' által generált GUI

ComposeMessageForm.cs (3. ábra):
Ez a következő oldal, ahol kitöltheti a szükséges adatmezőket egy új üzenet létrehozásához.

a gui a composemessageform cs-ből generálva
3. ábra - A 'ComposeMessageForm.cs' által generált GUI

DatabaseHandling.cs:
Itt állíthatja be az adatbázis kapcsolatot (4. ábra) és frissítheti a 'MainForm.cs' tábláit.

adatbázis kapcsolati beállítások a databasehandling cs-ben
4. ábra - Adatbázis kapcsolati beállítások a 'DatabaseHandling.cs'-ben

Hogyan működik az üzenetküldő kód

A 'ComposeMessageForm.cs'-ben kitöltheti a két mezőt a címzett címe és az üzenet szövege. A 'Küldés' gomb megnyomásával elindíthatja a következő kódot:

ComposeMessageForm.cs
...
private void buttonSend_Click(object sender, EventArgs e)
{
    CheckAndSendMessage();
}

private void CheckAndSendMessage()
{
    if (textBoxRecipient.Text == "")
    {
        MessageBox.Show("A címzett mező nem lehet üres!",
                    "Hibás mező érték");
        return;
    }

    string errorMsg = "";
    DatabaseHandling.insertMessage(textBoxRecipient.Text,
                textBoxMessageText.Text, out errorMsg);

    MessageBox.Show(errorMsg, "Üzenet beszúrásának eredménye");
}
...
5. ábra - Ellenőrzi, hogy a címzett mező üres-e

A CheckAndSendMessage() metódust a 'buttonSend_Click(...)' hívja meg. A metódus a címzett mező ellenőrzésével kezdődik és futtatja az insertMessage(...)-t a 'DatabaseHandling.cs'-ből, ha a címzett mező NEM üres (5. ábra). Az insertMessage(...) új sort tud beszúrni az 'ozekimessageout' táblába (6. ábra) (Az msgtype attribútum alapértelmezett értéke SMS:TEXT). Az Ozeki SMS Gateway elolvassa a sorokat az SQL szerverről, ahogyan az a munkafolyamat-diagramon látható fent.

DatabaseHandling.cs
...
public static void insertMessage(string receiver, string messageText,
            out string errorMsg)
{
    Connect(out errorMsg);
    if (errorMsg != "")
       return;

    try
    {
       SqlCommand sqlComm = sqlConn.CreateCommand();
       sqlComm.CommandText = "insert into ozekimessageout " +
                    "(msgtype,receiver,msg,status) " +
                    "values ('SMS:TEXT','" + receiver + "','" +
                    messageText + "','send');";
       if (sqlComm.ExecuteNonQuery() == 0)
       {
            errorMsg = "A beszúrás SIKERTELEN volt!";
       }
       else
       {
            errorMsg = "A beszúrás SIKERES volt!";
       }
    }
    catch (Exception e)
    {
        errorMsg = e.Message;
    }

    CloseConnection();
}
...
6. ábra - Üzenet beszúrása az SQL adatbázisba

Használhat más üzenettípust is az 'SMS:TEXT' helyett (pl. 'SMS:WAPPUSH', 'SMS:VCARD'), ahogyan a 7. ábrán látható.

...
sqlComm.CommandText = "insert into ozekimessageout " +
                    "(msgtype,receiver,msg,status) " +
                    "values ('SMS:WAPPUSH','" + receiver + "','" +
                    messageText + "','send');";
...
7. ábra - Üzenettípus módosítása 'SMS:TEXT'-ről 'SMS:WAPPUSH'-ra

Gyakran ismételt kérdések

Kérdés: Futhat ez a C# példa más számítógépen, mint az Ozeki SMS Gateway vagy az MSSQL szerver gépe?
Válasz: Igen, futhat. Kérjük, módosítsa az IP címet a 'DatabaseHandling.cs'-ben az MSSQL szerver IP címére.

Kérdés: Megváltoztathatom a feladó telefonszámát?
Válasz: Igen. Kérjük, szúrja be a feladó számát is az üzenet sorba (8. ábra).
Csak akkor működik, ha IP SMS kapcsolata van.

...
string SenderNumber = "+449876543";
sqlComm.CommandText = "insert into ozekimessageout " +
                    "(msgtype,sender,receiver,msg,status) " +
                    "values ('SMS:TEXT','" + SenderNumber + "','" + receiver + "','" +
                    messageText + "','send');";
...
8. ábra - Módosított INSERT INTO utasítás egy további 'sender' attribútummal

Összefoglalás

Ez a cikk elmagyarázta, hogyan küldhet SMS-t C#-ból SQL Server használatával. Ez azt jelenti, hogy SMS-t küldhet sorok beszúrásával egy Microsoft SQL adatbázisba. Ez a rendszer egy C#.NET alkalmazást használ. SMS küldése SQL Serverből azt jelenti, hogy az SQL nyelvet használhatja üzenetek keresésére vagy SMS üzenetek kezelésére. Ez jelentősen javítja a kommunikáció hatékonyságát a szervezeten belül és gyorsabbá teszi az információáramlást.

Ha többet szeretne megtudni az Ozeki által nyújtott technológiáról, látogasson el az Ozeki weboldalára. Javasoljuk, hogy kezdje a C# SMS API-val. További információt talál az Ozeki C# SMS API-ról ebben a cikkben. Következő lépésként, ha HTTP SMS API-val szeretne SMS-t küldeni, látogasson el erre a cikkre: HTTP SMS API.

Az SMS küldés megkezdéséhez API-k használatával, töltse le az Ozeki SMS Gateway-t most és kezdje el a munkát!

More information