.NET 開発者必見: C# で SQL Server に接続してデータを読み書き
C# で SQL Server への接続文字列を設定する方法
接続文字列の構成要素
接続文字列には、次の要素を含めることができます。
- Data Source: データベースサーバーの名前。
- Initial Catalog: 接続するデータベースの名前。
- Integrated Security: Windows 認証を使用するかどうかを指定します。true に設定すると、現在の Windows ユーザーアカウントで認証されます。
- User ID: SQL Server 認証を使用する場合のユーザー名。
- Other: 接続タイムアウトや接続プールサイズなどの追加設定。
接続文字列を設定するには、次のいずれかの方法を使用できます。
- 直接文字列として設定する:
string connectionString = "Data Source=myServer;Initial Catalog=myDatabase;Integrated Security=true";
- SqlConnectionStringBuilder クラスを使用する:
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
builder.DataSource = "myServer";
builder.InitialCatalog = "myDatabase";
builder.IntegratedSecurity = true;
string connectionString = builder.ConnectionString;
- app.config または web.config ファイルを使用する:
接続文字列を app.config または web.config ファイルに格納し、次にコードからその文字列を読み込むことができます。
string connectionString = ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString;
例
次の例では、SqlConnection
オブジェクトを使用して SQL Server に接続する方法を示します。
using System.Data.SqlClient;
string connectionString = "Data Source=myServer;Initial Catalog=myDatabase;Integrated Security=true";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
// データベース操作を実行する
connection.Close();
}
補足
- 接続文字列を安全に保持するには、app.config または web.config ファイルに格納し、コードから ConfigurationManager クラスを使用して読み込むことをお勧めします。
C# で SQL Server に接続するサンプルコード
必要なライブラリ
このコードを実行するには、以下のライブラリをプロジェクトに追加する必要があります。
- System.Data.SqlClient
コード
using System;
using System.Data.SqlClient;
namespace SqlServerExample
{
class Program
{
static void Main(string[] args)
{
// 接続文字列を設定
string connectionString = "Data Source=myServer;Initial Catalog=myDatabase;Integrated Security=true";
// SqlConnection オブジェクトを作成
using (SqlConnection connection = new SqlConnection(connectionString))
{
// 接続を開く
connection.Open();
// SQL コマンドを作成
string sql = "SELECT * FROM Customers";
SqlCommand command = new SqlCommand(sql, connection);
// コマンドを実行し、結果を取得
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
// 各行のデータを取得
int customerId = reader.GetInt32(0);
string companyName = reader.GetString(1);
// データをコンソールに出力
Console.WriteLine($"Customer ID: {customerId}, Company Name: {companyName}");
}
}
}
}
}
}
説明
- 最初に、
using
ステートメントを使用して、System.Data.SqlClient
名前空間をコードにインポートします。 - 次に、
connectionString
変数に接続文字列を格納します。 using
ステートメントを使用して、SqlConnection
オブジェクトを作成します。これにより、接続が自動的に閉じられます。connection.Open()
メソッドを使用して、データベースへの接続を開きます。SqlCommand
オブジェクトを作成し、実行する SQL コマンドを設定します。SqlCommand.ExecuteReader()
メソッドを使用して、コマンドを実行し、結果のSqlDataReader
オブジェクトを取得します。SqlDataReader.Read()
メソッドを使用して、結果セットの各行をループ処理します。- 各行のデータを取得し、コンソールに出力します。
using
ステートメントを使用して、SqlDataReader
とSqlConnection
オブジェクトを自動的に閉じます。
- このコードは、基本的なデータベース操作の例です。より複雑な操作については、Microsoft のドキュメントを参照してください。
- 実際のアプリケーションでは、接続文字列を安全な場所に格納する必要があります。
SQL Server に接続するその他の方法
ADO.NET Entity Framework は、.NET Framework 用のオブジェクト関係マッピング (ORM) フレームワークです。 Entity Framework を使用すると、データベースとのやり取りをより簡単かつ効率的に行うことができます。
NHibernate は、オープンソースの ORM フレームワークです。 Entity Framework と同様に、NHibernate を使用すると、データベースとのやり取りをより簡単かつ効率的に行うことができます。
LINQ to SQL は、.NET Framework の Language Integrated Query (LINQ) を使用して SQL Server データベースにアクセスするためのツールです。 LINQ to SQL を使用すると、SQL クエリを C# コードで記述することができます。
ドライバーマネージャー
JDBC などのドライバーマネージャーを使用して、SQL Server に接続することもできます。 ドライバーマネージャーは、データベースの種類に関係なく、データベースに接続するための汎用的な方法を提供します。
使用する方法は、ニーズと要件によって異なります。
- シンプルなデータアクセス の場合は、サンプルコードで示したような ADO.NET の基本的なデータアクセス方法を使用するのが最良の方法です。
- より複雑なデータアクセス または オブジェクト指向の開発 の場合は、Entity Framework または NHibernate などの ORM フレームワークを使用することを検討してください。
- LINQ を使用してデータベースにアクセスしたい場合は、LINQ to SQL を使用することができます。
- データベースの種類に依存しない汎用的な方法 で接続したい場合は、ドライバーマネージャーを使用することができます。
c# sql-server connection-string