ADO.NETコード例
27438 ワード
回転元:http://msdn.microsoft.com/zh-cn/library/dw70f090
このトピックのコード・リストでは、次のADO.NETテクノロジーを使用してデータベースからデータを取得する方法を示します. ADO.NETデータプロバイダ: SQL Server.NET Frameworkデータプロバイダ (System.Data.SqlClient) OLE DB.NET Frameworkデータプロバイダ (System.Data.OleDb) ODBC.NET Frameworkデータプロバイダ (System.Data.Odbc) Oracle.NET Frameworkデータプロバイダ (System.Data.OracleClient)
ADO.NETエンティティフレーム: LINQ to Entities タイプ化ObjectQuery EntityClientデータプロバイダ (System.Data.EntityClient)
LINQ to SQL
ADO.NETデータプロバイダの例
次のコード・リストでは、ADO.NETデータ・プロバイダを使用してデータベースからデータを取得する方法を示します. データは1つ DataReader に表示されます. 詳細については、DataReaderを使用したデータの取得を参照してください.
SqlClient
この例のコードは、Microsoft SQLサーバの Northwind サンプル・データベース. このシナリオ5では、サンプルコードが1つ作成される SqlCommand Productsテーブルから行を選択し、SqlParameterを追加します. をクリックして、UnitPriceが指定したパラメータ値より大きい行に制限します. SqlConnection にある using ブロック内が開き、コードが終了するとリソースが閉じられ、解放されることを保証します. サンプルコードSqlDataReader コマンドを実行し、結果をコンソールウィンドウに表示します.
C#
VB
[先頭に戻る]
OleDb
この例のコードは、Microsoft Access Northwindサンプル・データベースに接続できると仮定します. このシナリオ5では、サンプルコードが1つ作成される OleDbCommand Productsテーブルから行を選択し、OleDbParameterを追加します. をクリックして、UnitPriceが指定したパラメータ値より大きい行に制限します. OleDbConnection にある using ブロック内が開き、コードが終了するとリソースが閉じられ、解放されることを保証します. サンプルコードOleDbDataReader コマンドを実行し、結果をコンソールウィンドウに表示します.
C#
VB
[先頭に戻る]
Odbc
この例のコードは、Microsoft Access Northwindサンプル・データベースに接続できると仮定します. このシナリオ5では、サンプルコードが1つ作成される OdbcCommand Productsテーブルから行を選択し、OdbcParameterを追加します. をクリックして、UnitPriceが指定したパラメータ値より大きい行に制限します. OdbcConnection にある using ブロック内が開き、コードが終了するとリソースが閉じられ、解放されることを保証します. サンプルコードOdbcDataReader コマンドを実行し、結果をコンソールウィンドウに表示します.
C#
VB
[先頭に戻る]
OracleClient
この例のコードは、OracleサーバのDEMO.CASTOMERへの接続が確立されていると仮定します. System.Data.OracleClient.dllへの参照も追加する必要があります. サンプルコード OracleDataReader で行ないます.
C#
VB
[先頭に戻る]
エンティティーフレームの例
次のコード・リストでは、エンティティ・データ・モデル(EDM)のエンティティをクエリーしてデータ・ソースからデータを取得する方法を示します. これらの例では Northwindモデル . 詳細については、エンティティーフレームワークの概要を参照してください.
LINQ to Entities
この例のコードは、LINQクエリを使用してCategoriesオブジェクトとしてデータを返します.これらのオブジェクトは、CategoryIDおよびCategoryName属性のみを含む匿名タイプとして抽出されます. 詳細については、LINQ to Entities Overviewを参照してください.
C#で:
[先頭に戻る]
型化ObjectQuery
この例のコードの使用 ObjectQuery<T> Categoriesオブジェクトとしてデータを返します. 詳細については、Object Queries (Entity Framework)を参照してください.
C#で:
[先頭に戻る]
EntityClient
この例のコードの使用 EntityCommand をクリックしてください. このクエリは、Categoriesエンティティタイプのインスタンスを示すレコードのリストを返します. EntityDataReader 結果セットにアクセスするためのデータレコード. 詳細については、エンティティ・フレームワーク用EntityClientプロバイダを参照してください.
C#"で
[先頭に戻る]
LINQ to SQL
この例のコードは、LINQクエリを使用してCategoriesオブジェクトとしてデータを返します.これらのオブジェクトは、CategoryIDおよびCategoryName属性のみを含む匿名タイプとして抽出されます. この例は、Northwindデータコンテキストに基づいています. 詳細については、はじめにを参照してください.
C#で:
[先頭に戻る]
「」を参照してください。
コンセプト
データ・アプリケーションの作成
その他のリソース
ADO.NETの概要
ADO.NETでのデータの取得と変更
Querying an Entity Data Model (Entity Framework Tasks)
How to: Execute a Query that Returns an Anonymous Type (Entity Framework)
ADO.NET管理プロバイダおよびDataSet開発者センター
このトピックのコード・リストでは、次のADO.NETテクノロジーを使用してデータベースからデータを取得する方法を示します.
ADO.NETデータプロバイダの例
次のコード・リストでは、ADO.NETデータ・プロバイダを使用してデータベースからデータを取得する方法を示します. データは1つ DataReader に表示されます. 詳細については、DataReaderを使用したデータの取得を参照してください.
SqlClient
この例のコードは、Microsoft SQLサーバの Northwind サンプル・データベース. このシナリオ5では、サンプルコードが1つ作成される SqlCommand Productsテーブルから行を選択し、SqlParameterを追加します. をクリックして、UnitPriceが指定したパラメータ値より大きい行に制限します. SqlConnection にある using ブロック内が開き、コードが終了するとリソースが閉じられ、解放されることを保証します. サンプルコードSqlDataReader コマンドを実行し、結果をコンソールウィンドウに表示します.
C#
VB
using System;
using System.Data;
using System.Data.SqlClient;
class Program
{
static void Main()
{
string connectionString =
"Data Source=(local);Initial Catalog=Northwind;"
+ "Integrated Security=true";
// Provide the query string with a parameter placeholder.
string queryString =
"SELECT ProductID, UnitPrice, ProductName from dbo.products "
+ "WHERE UnitPrice > @pricePoint "
+ "ORDER BY UnitPrice DESC;";
// Specify the parameter value.
int paramValue = 5;
// Create and open the connection in a using block. This
// ensures that all resources will be closed and disposed
// when the code exits.
using (SqlConnection connection =
new SqlConnection(connectionString))
{
// Create the Command and Parameter objects.
SqlCommand command = new SqlCommand(queryString, connection);
command.Parameters.AddWithValue("@pricePoint", paramValue);
// Open the connection in a try/catch block.
// Create and execute the DataReader, writing the result
// set to the console window.
try
{
connection.Open();
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
Console.WriteLine("\t{0}\t{1}\t{2}",
reader[0], reader[1], reader[2]);
}
reader.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadLine();
}
}
[先頭に戻る]
OleDb
この例のコードは、Microsoft Access Northwindサンプル・データベースに接続できると仮定します. このシナリオ5では、サンプルコードが1つ作成される OleDbCommand Productsテーブルから行を選択し、OleDbParameterを追加します. をクリックして、UnitPriceが指定したパラメータ値より大きい行に制限します. OleDbConnection にある using ブロック内が開き、コードが終了するとリソースが閉じられ、解放されることを保証します. サンプルコードOleDbDataReader コマンドを実行し、結果をコンソールウィンドウに表示します.
C#
VB
using System;
using System.Data;
using System.Data.OleDb;
class Program
{
static void Main()
{
// The connection string assumes that the Access
// Northwind.mdb is located in the c:\Data folder.
string connectionString =
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
+ "c:\\Data\\Northwind.mdb;User Id=admin;Password=;";
// Provide the query string with a parameter placeholder.
string queryString =
"SELECT ProductID, UnitPrice, ProductName from products "
+ "WHERE UnitPrice > ? "
+ "ORDER BY UnitPrice DESC;";
// Specify the parameter value.
int paramValue = 5;
// Create and open the connection in a using block. This
// ensures that all resources will be closed and disposed
// when the code exits.
using (OleDbConnection connection =
new OleDbConnection(connectionString))
{
// Create the Command and Parameter objects.
OleDbCommand command = new OleDbCommand(queryString, connection);
command.Parameters.AddWithValue("@pricePoint", paramValue);
// Open the connection in a try/catch block.
// Create and execute the DataReader, writing the result
// set to the console window.
try
{
connection.Open();
OleDbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
Console.WriteLine("\t{0}\t{1}\t{2}",
reader[0], reader[1], reader[2]);
}
reader.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadLine();
}
}
[先頭に戻る]
Odbc
この例のコードは、Microsoft Access Northwindサンプル・データベースに接続できると仮定します. このシナリオ5では、サンプルコードが1つ作成される OdbcCommand Productsテーブルから行を選択し、OdbcParameterを追加します. をクリックして、UnitPriceが指定したパラメータ値より大きい行に制限します. OdbcConnection にある using ブロック内が開き、コードが終了するとリソースが閉じられ、解放されることを保証します. サンプルコードOdbcDataReader コマンドを実行し、結果をコンソールウィンドウに表示します.
C#
VB
using System;
using System.Data;
using System.Data.Odbc;
class Program
{
static void Main()
{
// The connection string assumes that the Access
// Northwind.mdb is located in the c:\Data folder.
string connectionString =
"Driver={Microsoft Access Driver (*.mdb)};"
+ "Dbq=c:\\Data\\Northwind.mdb;Uid=Admin;Pwd=;";
// Provide the query string with a parameter placeholder.
string queryString =
"SELECT ProductID, UnitPrice, ProductName from products "
+ "WHERE UnitPrice > ? "
+ "ORDER BY UnitPrice DESC;";
// Specify the parameter value.
int paramValue = 5;
// Create and open the connection in a using block. This
// ensures that all resources will be closed and disposed
// when the code exits.
using (OdbcConnection connection =
new OdbcConnection(connectionString))
{
// Create the Command and Parameter objects.
OdbcCommand command = new OdbcCommand(queryString, connection);
command.Parameters.AddWithValue("@pricePoint", paramValue);
// Open the connection in a try/catch block.
// Create and execute the DataReader, writing the result
// set to the console window.
try
{
connection.Open();
OdbcDataReader reader = command.ExecuteReader();
while (reader.Read())
{
Console.WriteLine("\t{0}\t{1}\t{2}",
reader[0], reader[1], reader[2]);
}
reader.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadLine();
}
}
[先頭に戻る]
OracleClient
この例のコードは、OracleサーバのDEMO.CASTOMERへの接続が確立されていると仮定します. System.Data.OracleClient.dllへの参照も追加する必要があります. サンプルコード OracleDataReader で行ないます.
C#
VB
using System;
using System.Data;
using System.Data.OracleClient;
class Program
{
static void Main()
{
string connectionString =
"Data Source=ThisOracleServer;Integrated Security=yes;";
string queryString =
"SELECT CUSTOMER_ID, NAME FROM DEMO.CUSTOMER";
using (OracleConnection connection =
new OracleConnection(connectionString))
{
OracleCommand command = connection.CreateCommand();
command.CommandText = queryString;
try
{
connection.Open();
OracleDataReader reader = command.ExecuteReader();
while (reader.Read())
{
Console.WriteLine("\t{0}\t{1}",
reader[0], reader[1]);
}
reader.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}
[先頭に戻る]
エンティティーフレームの例
次のコード・リストでは、エンティティ・データ・モデル(EDM)のエンティティをクエリーしてデータ・ソースからデータを取得する方法を示します. これらの例では Northwindモデル . 詳細については、エンティティーフレームワークの概要を参照してください.
LINQ to Entities
この例のコードは、LINQクエリを使用してCategoriesオブジェクトとしてデータを返します.これらのオブジェクトは、CategoryIDおよびCategoryName属性のみを含む匿名タイプとして抽出されます. 詳細については、LINQ to Entities Overviewを参照してください.
Option Explicit On
Option Strict On
Imports System
Imports System.Linq
Imports System.Data.Objects
Imports NorthwindModel
Class LinqSample
Public Shared Sub ExecuteQuery()
Using context As NorthwindEntities = New NorthwindEntities()
Try
Dim query = From category In context.Categories _
Select New With _
{ _
.categoryID = category.CategoryID, _
.categoryName = category.CategoryName _
}
For Each categoryInfo In query
Console.WriteLine(vbTab & "{0}" & vbTab & "{1}", _
categoryInfo.categoryID, categoryInfo.categoryName)
Next
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
End Using
End Sub
End Class
C#で:
using System;
using System.Linq;
using System.Data.Objects;
using NorthwindModel;
class LinqSample
{
public static void ExecuteQuery()
{
using (NorthwindEntities context = new NorthwindEntities())
{
try
{
var query = from category in context.Categories
select new
{
categoryID = category.CategoryID,
categoryName = category.CategoryName
};
foreach (var categoryInfo in query)
{
Console.WriteLine("\t{0}\t{1}",
categoryInfo.categoryID, categoryInfo.categoryName);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}
[先頭に戻る]
型化ObjectQuery
この例のコードの使用 ObjectQuery<T> Categoriesオブジェクトとしてデータを返します. 詳細については、Object Queries (Entity Framework)を参照してください.
Option Explicit On
Option Strict On
Imports System
Imports System.Data.Objects
Imports NorthwindModel
Class ObjectQuerySample
Public Shared Sub ExecuteQuery()
Using context As NorthwindEntities = New NorthwindEntities()
Dim categoryQuery As ObjectQuery(Of Categories) = context.Categories
For Each category As Categories In _
categoryQuery.Execute(MergeOption.AppendOnly)
Console.WriteLine(vbTab & "{0}" & vbTab & "{1}", _
category.CategoryID, category.CategoryName)
Next
End Using
End Sub
End Class
C#で:
using System;
using System.Data.Objects;
using NorthwindModel;
class ObjectQuerySample
{
public static void ExecuteQuery()
{
using (NorthwindEntities context = new NorthwindEntities())
{
ObjectQuery<Categories> categoryQuery = context.Categories;
foreach (Categories category in
categoryQuery.Execute(MergeOption.AppendOnly))
{
Console.WriteLine("\t{0}\t{1}",
category.CategoryID, category.CategoryName);
}
}
}
}
[先頭に戻る]
EntityClient
この例のコードの使用 EntityCommand をクリックしてください. このクエリは、Categoriesエンティティタイプのインスタンスを示すレコードのリストを返します. EntityDataReader 結果セットにアクセスするためのデータレコード. 詳細については、エンティティ・フレームワーク用EntityClientプロバイダを参照してください.
Option Explicit On
Option Strict On
Imports System
Imports System.Data
Imports System.Data.Common
Imports System.Data.EntityClient
Imports NorthwindModel
Class EntityClientSample
Public Shared Sub ExecuteQuery()
Dim queryString As String = _
"SELECT c.CategoryID, c.CategoryName " & _
"FROM NorthwindEntities.Categories AS c"
Using conn As EntityConnection = _
New EntityConnection("name=NorthwindEntities")
Try
conn.Open()
Using query As EntityCommand = _
New EntityCommand(queryString, conn)
Using rdr As DbDataReader = _
query.ExecuteReader(CommandBehavior.SequentialAccess)
While rdr.Read()
Console.WriteLine(vbTab & "{0}" & vbTab & "{1}", _
rdr(0), rdr(1))
End While
End Using
End Using
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
End Using
End Sub
End Class
C#"で
using System;
using System.Data;
using System.Data.Common;
using System.Data.EntityClient;
using NorthwindModel;
class EntityClientSample
{
public static void ExecuteQuery()
{
string queryString =
@"SELECT c.CategoryID, c.CategoryName
FROM NorthwindEntities.Categories AS c";
using (EntityConnection conn =
new EntityConnection("name=NorthwindEntities"))
{
try
{
conn.Open();
using (EntityCommand query = new EntityCommand(queryString, conn))
{
using (DbDataReader rdr =
query.ExecuteReader(CommandBehavior.SequentialAccess))
{
while (rdr.Read())
{
Console.WriteLine("\t{0}\t{1}", rdr[0], rdr[1]);
}
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}
[先頭に戻る]
LINQ to SQL
この例のコードは、LINQクエリを使用してCategoriesオブジェクトとしてデータを返します.これらのオブジェクトは、CategoryIDおよびCategoryName属性のみを含む匿名タイプとして抽出されます. この例は、Northwindデータコンテキストに基づいています. 詳細については、はじめにを参照してください.
Option Explicit On
Option Strict On
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports Northwind
Class LinqSqlSample
Public Shared Sub ExecuteQuery()
Using db As NorthwindDataContext = New NorthwindDataContext()
Try
Dim query = From category In db.Categories _
Select New With _
{ _
.categoryID = category.CategoryID, _
.categoryName = category.CategoryName _
}
For Each categoryInfo In query
Console.WriteLine(vbTab & "{0}" & vbTab & "{1}", _
categoryInfo.categoryID, categoryInfo.categoryName)
Next
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
End Using
End Sub
End Class
C#で:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Northwind;
class LinqSqlSample
{
public static void ExecuteQuery()
{
using (NorthwindDataContext db = new NorthwindDataContext())
{
try
{
var query = from category in db.Categories
select new
{
categoryID = category.CategoryID,
categoryName = category.CategoryName
};
foreach (var categoryInfo in query)
{
Console.WriteLine("vbTab {0} vbTab {1}",
categoryInfo.categoryID, categoryInfo.categoryName);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}
[先頭に戻る]
「」を参照してください。
コンセプト
データ・アプリケーションの作成
その他のリソース
ADO.NETの概要
ADO.NETでのデータの取得と変更
Querying an Entity Data Model (Entity Framework Tasks)
How to: Execute a Query that Returns an Anonymous Type (Entity Framework)
ADO.NET管理プロバイダおよびDataSet開発者センター