Entity Framework を使用して C# から SQL Server のリアルデータ型にアクセスする
SQL Server のリアルデータ型と C# の対応関係
リアルデータ型は、SQL Server で数値データを格納するために使用されるデータ型です。以下の種類があります。
- int:整数
- decimal:10進数
- float:浮動小数点数
- money:通貨
C# の対応データ型
C# では、以下のデータ型がリアルデータ型に対応します。
- int:32 ビット整数
- decimal:128 ビットの 10 進数
- double:64 ビット浮動小数点数
データ型のマッピング
以下の表は、SQL Server のリアルデータ型と C# のデータ型のマッピングを示します。
SQL Server | C# |
---|---|
int | int |
decimal | decimal |
float | double |
money | decimal |
注意点
- SQL Server の
money
データ型は、C# のdecimal
データ型にマッピングされますが、精度とスケールは異なります。 - C# の
float
データ型は、SQL Server のfloat
データ型よりも精度が低くなります。
例
以下のコードは、SQL Server の int
型の列を C# の int
型の変数に格納する例です。
using System;
using System.Data.SqlClient;
public class Program
{
public static void Main(string[] args)
{
// SqlConnection オブジェクトを作成します。
using (var connection = new SqlConnection("Data Source=localhost;Initial Catalog=Test;Integrated Security=True"))
{
// SqlCommand オブジェクトを作成します。
using (var command = new SqlCommand("SELECT Id FROM dbo.Customers", connection))
{
// SqlConnection オブジェクトを開きます。
connection.Open();
// SqlCommand オブジェクトを実行します。
using (var reader = command.ExecuteReader())
{
// reader から最初の行を取得します。
reader.Read();
// Id 列の値を取得します。
var id = reader.GetInt32(0);
// id 変数の値を出力します。
Console.WriteLine(id);
}
}
}
}
}
using System;
using System.Data.SqlClient;
public class Program
{
public static void Main(string[] args)
{
// SqlConnection オブジェクトを作成します。
using (var connection = new SqlConnection("Data Source=localhost;Initial Catalog=Test;Integrated Security=True"))
{
// SqlCommand オブジェクトを作成します。
using (var command = new SqlCommand("SELECT Id, Name, Age, Money FROM dbo.Customers", connection))
{
// SqlConnection オブジェクトを開きます。
connection.Open();
// SqlCommand オブジェクトを実行します。
using (var reader = command.ExecuteReader())
{
// reader からすべての行をループ処理します。
while (reader.Read())
{
// Id 列の値を取得します。
var id = reader.GetInt32(0);
// Name 列の値を取得します。
var name = reader.GetString(1);
// Age 列の値を取得します。
var age = reader.GetInt16(2);
// Money 列の値を取得します。
var money = reader.GetDecimal(3);
// 各列の値を出力します。
Console.WriteLine("Id: {0}", id);
Console.WriteLine("Name: {0}", name);
Console.WriteLine("Age: {0}", age);
Console.WriteLine("Money: {0}", money);
Console.WriteLine();
}
}
}
}
}
}
このコードは、dbo.Customers
テーブルからデータを読み取り、各列の値を出力します。
コードの説明
SqlConnection
オブジェクトは、SQL Server への接続を表します。SqlDataReader
オブジェクトは、クエリ結果を表します。reader.GetInt32(0)
は、Id
列の値をint
型に変換して取得します。
実行結果
Id: 1
Name: 山田太郎
Age: 20
Money: 12345.67
Id: 2
Name: 佐藤花子
Age: 25
Money: 98765.43
このページでは、SQL Server のリアルデータ型と C# のデータ型について解説しました。サンプルコードを参考に、C# で SQL Server と連携するプログラムを作成してみてください。
SQL Server と C# を連携する方法
ADO.NET は、.NET Framework で提供されるデータアクセス技術です。ADO.NET を使用すると、C# から SQL Server に接続し、データの読み書きや更新を行うことができます。
ADO.NET を使用するには、以下の手順が必要です。
- プロジェクトに
System.Data
アセンブリを追加します。 SqlConnection
オブジェクトを作成します。
Entity Framework は、オブジェクト指向プログラミング (OOP) でデータアクセスを行うためのオープンソースフレームワークです。Entity Framework を使用すると、C# から SQL Server に接続し、データの読み書きや更新を行うことができます。
Entity Framework を使用するには、以下の手順が必要です。
- プロジェクトに Entity Framework の NuGet パッケージを追加します。
- モデルを作成します。
- コンテキストを作成します。
- クエリを実行します。
- データを保存します。
Dapper は、軽量で高速なマイクロ ORM です。Dapper を使用すると、C# から SQL Server に接続し、データの読み書きや更新を行うことができます。
- Dapper の
Query
やExecute
メソッドを使用して、クエリを実行します。
上記の方法以外にも、SQL Server と C# を連携する方法があります。自分に合った方法を選択して、開発を進めてください。
c# sql-server