Hızlı Başlangıç: .NET (C#) kullanarak MySQL için Azure Veritabanı'de veri bağlama ve sorgulama
ŞUNLAR IÇIN GEÇERLIDIR: MySQL için Azure Veritabanı - Tek Sunucu
Önemli
MySQL için Azure Veritabanı tek sunucu kullanımdan kaldırma yolundadır. Esnek MySQL için Azure Veritabanı sunucuya yükseltmenizi kesinlikle öneririz. MySQL için Azure Veritabanı esnek sunucuya geçiş hakkında daha fazla bilgi için bkz. MySQL için Azure Veritabanı Tek Sunucu'ya neler oluyor?
Bu hızlı başlangıçta C# uygulaması kullanarak MySQL için Azure Veritabanı'na nasıl bağlanacağınız gösterilmiştir. Hızlı başlangıçta, veritabanında verileri sorgulamak, eklemek, güncelleştirmek ve silmek için SQL deyimlerinin nasıl kullanılacağı da gösterilmiştir.
Önkoşullar
Bu hızlı başlangıç için ihtiyacınız olan:
- Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.
- Azure portalını kullanarak MySQL için Azure Veritabanı tek sunucu oluşturma
veya Azure CLI'nız yoksa. - Genel veya özel erişim kullanıp kullanmadığınıza bağlı olarak, bağlantıyı etkinleştirmek için aşağıdaki eylemlerden BIRINI tamamlayın.
- Platformunuzun .NET SDK'sını (Windows, Ubuntu Linux veya macOS) platformunuza yükleyin.
Eylem | Bağlantı yöntemi | Nasıl yapılır kılavuzu |
---|---|---|
Güvenlik duvarı kurallarını yapılandırma | Genel | Portal CLI |
Hizmet Uç Noktasını Yapılandırma | Genel | Portal CLI |
Özel bağlantıyı yapılandırma | Özel | Portal CLI |
C# projesi oluşturma
Bir komut isteminde şunu çalıştırın:
mkdir AzureMySqlExample
cd AzureMySqlExample
dotnet new console
dotnet add package MySqlConnector
Bağlantı bilgilerini alma
MySQL için Azure Veritabanı'na bağlanmak üzere gereken bağlantı bilgilerini alın. Tam sunucu adına ve oturum açma kimlik bilgilerine ihtiyacınız vardır.
- Azure Portal’da oturum açın.
- Azure portalında sol taraftaki menüden Tüm kaynaklar'a tıklayın ve oluşturduğunuz sunucuyu (örneğin, mydemoserver) arayın.
- Sunucunun adına tıklayın.
- Sunucunun Genel Bakış panelinden Sunucu adı ile Sunucu yöneticisi oturum açma adı’nı not alın. Parolanızı unutursanız, bu panelden parolayı da sıfırlayabilirsiniz.
1. Adım: Bağlanma ve veri ekleme
ve INSERT INTO
SQL deyimlerini kullanarak CREATE TABLE
verileri bağlamak ve yüklemek için aşağıdaki kodu kullanın. Kod, sınıfının yöntemlerini MySqlConnection
kullanır:
- MySQL'e bağlantı kurmak için OpenAsync() .
- CreateCommand(), CommandText özelliğini ayarlar
- Veritabanı komutlarını çalıştırmak için ExecuteNonQueryAsync() komutunu çalıştırın.
Server
, Database
, UserID
ve Password
parametrelerini, sunucu ve veritabanını oluştururken belirttiğiniz değerlerle değiştirin.
using System;
using System.Threading.Tasks;
using MySqlConnector;
namespace AzureMySqlExample
{
class MySqlCreate
{
static async Task Main(string[] args)
{
var builder = new MySqlConnectionStringBuilder
{
Server = "YOUR-SERVER.mysql.database.azure.com",
Database = "YOUR-DATABASE",
UserID = "USER@YOUR-SERVER",
Password = "PASSWORD",
SslMode = MySqlSslMode.Required,
};
using (var conn = new MySqlConnection(builder.ConnectionString))
{
Console.WriteLine("Opening connection");
await conn.OpenAsync();
using (var command = conn.CreateCommand())
{
command.CommandText = "DROP TABLE IF EXISTS inventory;";
await command.ExecuteNonQueryAsync();
Console.WriteLine("Finished dropping table (if existed)");
command.CommandText = "CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);";
await command.ExecuteNonQueryAsync();
Console.WriteLine("Finished creating table");
command.CommandText = @"INSERT INTO inventory (name, quantity) VALUES (@name1, @quantity1),
(@name2, @quantity2), (@name3, @quantity3);";
command.Parameters.AddWithValue("@name1", "banana");
command.Parameters.AddWithValue("@quantity1", 150);
command.Parameters.AddWithValue("@name2", "orange");
command.Parameters.AddWithValue("@quantity2", 154);
command.Parameters.AddWithValue("@name3", "apple");
command.Parameters.AddWithValue("@quantity3", 100);
int rowCount = await command.ExecuteNonQueryAsync();
Console.WriteLine(String.Format("Number of rows inserted={0}", rowCount));
}
// connection will be closed by the 'using' block
Console.WriteLine("Closing connection");
}
Console.WriteLine("Press RETURN to exit");
Console.ReadLine();
}
}
}
2. Adım: Verileri okuma
Bir SELECT
SQL deyimini kullanarak bağlanmak ve verileri okumak için aşağıdaki kodu kullanın. Kod, aşağıdaki yöntemlerle sınıfını MySqlConnection
kullanır:
- MySQL'e bağlantı kurmak için OpenAsync() .
- CommandText özelliğini ayarlamak için CreateCommand() .
- Veritabanı komutlarını çalıştırmak için ExecuteReaderAsync() .
- Sonuçlardaki kayıtlara ilerlemek için ReadAsync() . Ardından kod, GetInt32 ve GetString yöntemini kullanarak kayıttaki değerleri ayrıştırır.
Server
, Database
, UserID
ve Password
parametrelerini, sunucu ve veritabanını oluştururken belirttiğiniz değerlerle değiştirin.
using System;
using System.Threading.Tasks;
using MySqlConnector;
namespace AzureMySqlExample
{
class MySqlRead
{
static async Task Main(string[] args)
{
var builder = new MySqlConnectionStringBuilder
{
Server = "YOUR-SERVER.mysql.database.azure.com",
Database = "YOUR-DATABASE",
UserID = "USER@YOUR-SERVER",
Password = "PASSWORD",
SslMode = MySqlSslMode.Required,
};
using (var conn = new MySqlConnection(builder.ConnectionString))
{
Console.WriteLine("Opening connection");
await conn.OpenAsync();
using (var command = conn.CreateCommand())
{
command.CommandText = "SELECT * FROM inventory;";
using (var reader = await command.ExecuteReaderAsync())
{
while (await reader.ReadAsync())
{
Console.WriteLine(string.Format(
"Reading from table=({0}, {1}, {2})",
reader.GetInt32(0),
reader.GetString(1),
reader.GetInt32(2)));
}
}
}
Console.WriteLine("Closing connection");
}
Console.WriteLine("Press RETURN to exit");
Console.ReadLine();
}
}
}
3. Adım: Verileri güncelleştirme
Bir UPDATE
SQL deyimini kullanarak bağlanmak ve verileri okumak için aşağıdaki kodu kullanın. Kod şu yöntemle sınıfını MySqlConnection
kullanır:
- MySQL'e bağlantı kurmak için OpenAsync() .
- CommandText özelliğini ayarlamak için CreateCommand()
- Veritabanı komutlarını çalıştırmak için ExecuteNonQueryAsync() komutunu çalıştırın.
Server
, Database
, UserID
ve Password
parametrelerini, sunucu ve veritabanını oluştururken belirttiğiniz değerlerle değiştirin.
using System;
using System.Threading.Tasks;
using MySqlConnector;
namespace AzureMySqlExample
{
class MySqlUpdate
{
static async Task Main(string[] args)
{
var builder = new MySqlConnectionStringBuilder
{
Server = "YOUR-SERVER.mysql.database.azure.com",
Database = "YOUR-DATABASE",
UserID = "USER@YOUR-SERVER",
Password = "PASSWORD",
SslMode = MySqlSslMode.Required,
};
using (var conn = new MySqlConnection(builder.ConnectionString))
{
Console.WriteLine("Opening connection");
await conn.OpenAsync();
using (var command = conn.CreateCommand())
{
command.CommandText = "UPDATE inventory SET quantity = @quantity WHERE name = @name;";
command.Parameters.AddWithValue("@quantity", 200);
command.Parameters.AddWithValue("@name", "banana");
int rowCount = await command.ExecuteNonQueryAsync();
Console.WriteLine(String.Format("Number of rows updated={0}", rowCount));
}
Console.WriteLine("Closing connection");
}
Console.WriteLine("Press RETURN to exit");
Console.ReadLine();
}
}
}
4. Adım: Verileri silme
Bir DELETE
SQL deyimini kullanarak bağlanmak ve verileri silmek için aşağıdaki kodu kullanın.
Kod, yöntemiyle sınıfını MySqlConnection
kullanır
- MySQL'e bağlantı kurmak için OpenAsync() .
- CommandText özelliğini ayarlamak için CreateCommand() .
- Veritabanı komutlarını çalıştırmak için ExecuteNonQueryAsync() komutunu çalıştırın.
Server
, Database
, UserID
ve Password
parametrelerini, sunucu ve veritabanını oluştururken belirttiğiniz değerlerle değiştirin.
using System;
using System.Threading.Tasks;
using MySqlConnector;
namespace AzureMySqlExample
{
class MySqlDelete
{
static async Task Main(string[] args)
{
var builder = new MySqlConnectionStringBuilder
{
Server = "YOUR-SERVER.mysql.database.azure.com",
Database = "YOUR-DATABASE",
UserID = "USER@YOUR-SERVER",
Password = "PASSWORD",
SslMode = MySqlSslMode.Required,
};
using (var conn = new MySqlConnection(builder.ConnectionString))
{
Console.WriteLine("Opening connection");
await conn.OpenAsync();
using (var command = conn.CreateCommand())
{
command.CommandText = "DELETE FROM inventory WHERE name = @name;";
command.Parameters.AddWithValue("@name", "orange");
int rowCount = await command.ExecuteNonQueryAsync();
Console.WriteLine(String.Format("Number of rows deleted={0}", rowCount));
}
Console.WriteLine("Closing connection");
}
Console.WriteLine("Press RETURN to exit");
Console.ReadLine();
}
}
}
Kaynakları temizleme
Bu hızlı başlangıç sırasında kullanılan tüm kaynakları temizlemek için aşağıdaki komutu kullanarak kaynak grubunu silin:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes