Hızlı Başlangıç: MySQL için Azure Veritabanı - Esnek Sunucu'da verileri bağlamak ve sorgulamak için .NET (C#) kullanma
ŞUNLAR IÇIN GEÇERLIDIR: MySQL için Azure Veritabanı - Esnek Sunucu
Bu hızlı başlangıçta, C# uygulaması kullanarak MySQL için Azure Veritabanı Esnek Sunucu örneğine nasıl bağlandığınız gösterilmektedir. 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ı.
Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir Azure hesabı oluşturun. Şu anda ücretsiz Azure hesabıyla 12 ay boyunca MySQL için Azure Veritabanı - Esnek Sunucu ücretsiz sürümünü deneyebilirsiniz. Daha fazla bilgi için bkz. MySQL için Azure Veritabanı - Esnek Sunucuyu ücretsiz deneyin.
Azure portalını kullanarak MySQL için Azure Veritabanı Esnek Sunucu örneği 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.
Sorun mu yaşıyorsunuz? Bizimle paylaşın.
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ı Esnek Sunucu örneğine bağlanmak için 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'ı seçin ve oluşturduğunuz sunucuyu (mydemoserver gibi) arayın.
- Sunucu adını seçin.
- 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",
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();
}
}
}
Sorun mu yaşıyorsunuz? Bize bildirin.
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();
}
}
}
Sorun mu yaşıyorsunuz? Bizimle paylaşın.
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",
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",
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