挿入、更新、削除: ASP.NET データベース接続のチュートリアル
データベースからデータにアクセスすることは、あらゆるプログラミング言語の重要な側面です。 どのプログラミング言語にもデータベースを操作できる機能が必要です。
ASP.Net には、さまざまな種類のデータベースを操作する機能があります。次のような最も一般的なデータベースで動作できます。 Oracle および Microsoft SQL サーバー。
また、次のような新しい形式のデータベースを操作する機能もあります。 MongoDB および MySQL.
データベース接続の基礎
ASP.Net は、ほとんどのデータベースを操作する機能を備えています。最も一般的な存在 Oracle および Microsoft SQL Server。ただし、どのデータベースでも、その操作の背後にあるロジックはほとんど同じです。
この例では、 Microsoft SQL Server 私たちのデータベースとして。学習目的で、ダウンロードして使用できます。 Microsoft SQL Server エクスプレス版。が提供する無料のデータベースソフトです。 Microsoft.
データベースを操作する際には、すべてのデータベースに共通する次の概念があります。
- 接続 – データベース内のデータを操作するには、最初の明らかなステップは接続です。 データベースへの接続は通常、以下のパラメータで構成されます。
- データベース名またはデータソース – 最初の重要なパラメータはデータベース名です。 各接続は、一度に XNUMX つのデータベースのみを操作できます。
- Credentials – 次に重要な要素は「ユーザー名」と「パスワード」です。 これはデータベースへの接続を確立するために使用されます。
- オプションのパラメーター – .net がデータベースへの接続をどのように処理するかに関するオプションのパラメータを指定できます。 たとえば、接続をアクティブにしておく期間のパラメータを指定できます。
- データベースからのデータの選択 – 接続が確立されると、データがデータベースから取得されます。 ASP.Net には、データベースに対して 'sql' select コマンドを実行する機能があります。 「sql」ステートメントを使用すると、データベース内の特定のテーブルからデータをフェッチできます。
- データベースへのデータの挿入 – ASP.Net はデータベースにレコードを挿入するために使用されます。 データベースに挿入する必要がある各行の値は、ASP.Net で指定されます。
- データベースへのデータの更新 – ASP.Net を使用して、データベース内の既存のレコードを更新することもできます。 ASP.Net では、データベースに更新する必要がある行ごとに新しい値を指定できます。
- データベースからのデータの削除 – ASP.Net を使用してデータベースからレコードを削除することもできます。 このコードは、データベースから特定の行を削除するために作成されます。
さて、各操作の理論的な部分を見てきました。次に、ASP.Net でデータベース操作を実行する方法を見てみましょう。
ASP.NETデータベース接続
次に、データベースへの接続を作成するために保持する必要があるコードを見てみましょう。 この例では、Demodb という名前のデータベースに接続します。 データベースへの接続に使用される認証情報は次のとおりです。
- ユーザー名 – sa
- パスワード – デモ123
前のセクションで作成した現在の Web アプリケーションを操作してみましょう。
- データベース操作の追加を開始します。
- この例では、単純な接続の確立を見ていきます。 この接続は Demodb データベースに対して行われます。 これは、ページが最初に起動されたときに行われます。
- 接続が確立されると、メッセージがユーザーに送信されます。 接続が確立されたことを示すメッセージが表示されます。
これを達成するには、以下の手順に従ってください。
ステップ1) まず、Web アプリケーション (DemoApplication) が Visual Studio で開かれていることを確認しましょう。 Double 「demo.aspx.cs」ファイルをクリックして、データベース接続のコードを入力します。
ステップ2) データベースへの接続を確立するために使用される以下のコードを追加します。
namespace DemoApplication
{
public partial class Demo System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string connetionString;
SqlConnection cnn;
connetionString = @"Data Source=WIN-50GP30FGO75;Initial Catalog=Demodb ;User ID=sa;Password=demol23";
cnn = new SqlConnection(connetionString);
cnn.Open();
Response.Write("Connection MAde");
conn.Close();
}
}
}
コードの説明:-
- 最初のステップは変数を作成することです。 これは、接続文字列と SQL Server データベースへの接続を作成するために使用されます。
- 次のステップは、実際に接続文字列を作成することです。接続文字列は次の部分で構成されます。
- データ ソース – これは、データベースが存在するサーバーの名前です。 私たちの場合、これは WIN-50GP30FGO75 というマシン上に存在します。
- 初期カタログはデータベースの名前を指定するために使用されます。
- ユーザー ID とパスワードは、データベースに接続するために必要な資格情報です。
- 次に、接続文字列を変数「cnn」に代入します。
- 変数 cnn の型は SqlConnection です。 これはデータベースへの接続を確立するために使用されます。
- SqlConnection は ASP.Net のクラスで、データベースへの接続を作成するために使用されます。
- このクラスを使用するには、まずこのクラスのオブジェクトを作成する必要があります。 したがって、ここでは、SqlConnection 型の「cnn」という変数を作成します。
- 次に、cnn 変数の open メソッドを使用して、データベースへの接続を開きます。 接続が確立されたことを示すメッセージがユーザーに表示されます。 これは「response.write」メソッドを介して行われます。 次に、データベースへの接続を閉じます。
上記のコードを設定し、プロジェクトを実行すると Visual Studioの以下のような出力が表示されます。フォームが表示されたら、「接続」ボタンをクリックします。
出力:-
ブラウザに表示される出力メッセージには、データベースへの接続が行われたことが示されます。
SqlDataReader を使用した ASP.NET 読み取りデータベース
Asp.Net を使用してアクセスされたデータを表示するには、データベースに次の成果物があると仮定します。
- demotb というテーブル。 このテーブルは、さまざまなチュートリアルの ID と名前を保存するために使用されます。
- テーブルには XNUMX つの列があり、XNUMX つは「TutorialID」、もう XNUMX つは「TutorialName」と呼ばれます。
- 現時点では、以下に示すように、テーブルには XNUMX つの行が表示されます。
| チュートリアルID | チュートリアル名 |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
このデータをクエリして Web ページ自体に情報を表示できるようにコードを変更しましょう。 入力されたコードは、データ接続モジュール用に書かれたコードの続きであることに注意してください。
ステップ1) コードを XNUMX つの部分に分割しましょう。
- 最初の部分は、「select」ステートメントを構築することです。 データベースからデータを読み取るために使用されます。
- 次に、データベースに対して「select」ステートメントを実行します。 これにより、それに応じてテーブルのすべての行がフェッチされます。
コードの説明:-
- 最初のステップは、次の変数を作成することです
- SQLCommand – 「SQLCommand」は C# 内で定義されたクラスです。このクラスは、データベースの読み取りと書き込みの操作を実行するために使用されます。したがって、最初のステップは、このクラスの変数型を作成することを確認することです。この変数は、データベースからデータを読み取る後続のステップで使用されます。
- DataReader オブジェクトは、SQL クエリで指定されたすべてのデータを取得するために使用されます。 次に、データ リーダーを使用してテーブルのすべての行を XNUMX つずつ読み取ることができます。
- 次に、XNUMX つの文字列変数を定義します。 XNUMX つは SQL コマンド文字列を保持する「SQL」です。 次は「出力」で、すべてのテーブル値が含まれます。
- 次のステップでは、実際に SQL ステートメントを定義します。 これはデータベースに対して使用されます。 今回の場合は「demotb から TutorialID、TutorialName を選択」です。 これにより、テーブル demotb からすべての行がフェッチされます。
- 次に、データベースに対して SQL ステートメントを実行するために使用されるコマンド オブジェクトを作成します。 SQL コマンドでは、接続オブジェクトと SQL 文字列を渡す必要があります。
- 次に、demotb テーブルからすべての行をフェッチするデータ リーダー コマンドを実行します。
- テーブルのすべての行を取得したので、行に XNUMX つずつアクセスするメカニズムが必要です。
- このために、「while」ステートメントを使用します。
- 「while」ステートメントは、データ リーダーからの行に一度に XNUMX つずつアクセスするために使用されます。
- 次に、「GetValue」メソッドを使用して、TutorialID と TutorialName の値を取得します。
ステップ2) 最後のステップでは、ユーザーに出力を表示します。その後、データベース操作に関連するすべてのオブジェクトを閉じます。
namespace DemoApplication
{
public partial class Demo System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
SqlCommand command;
SqlDataReader dataReader;
String sql, Output =" ";
sql = "Select TutorialID,TutorialName from demotb";
command = new SqlCommand(sql, cnn);
dataReader = sqlquery.ExecuteReader();
while (dataReader.Read())
{
Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>";
}
Response.Write(Output);
dataReader.Close();
command.dispose();
conn.Close();
}
}
}
コードの説明:-
- 出力変数の値を表示してコードを続けます。 これは、Response.Write メソッドを使用して行われます。
- 最後に、データベース操作に関連するすべてのオブジェクトを閉じます。これは常に良い習慣であることを忘れないでください。
上記のコードを設定し、Visual Studio を使用してプロジェクトを実行すると、以下の出力が得られます。
出力:-
出力から、プログラムがデータベースから値を取得できたことがはっきりとわかります。その後、データはブラウザでユーザーに表示されます。
InsertCommandを使用してデータベースレコードを挿入する
データへのアクセスと同様に、ASP.Net にはデータベースにレコードを挿入する機能もあります。 レコードの挿入に使用されるのと同じテーブル構造を考えてみましょう。
| チュートリアルID | チュートリアル名 |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
フォームのコードを変更して、次の行をテーブルに挿入できるようにします。
| チュートリアルID | チュートリアル名 |
|---|---|
| 3 | VB.Net |
ステップ1) 最初のステップとして、プログラムに次のコードを追加しましょう。以下のコード スニペットは、データベースに既存のレコードを挿入するために使用されます。
namespace DemoApplication
{
public partial class Demo System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
SqlCommand command;
SqlDataAdapter adapter = new SqlDataAdapter();
String sql="";
sql = "Insert into demotb(TutorialID,TutorialName) value(3, '" + "VB.Net +"')";
command = new SqlCommand(sql,cnn);
adapter.InsertCommand = new SqlCommand(sql,cnn);
adapter.InsertCommand.ExecuteNonQuery();
command.Dispose():
cnn.Close();
}
}
}
コードの説明:-
- 最初のステップは、次の変数を作成することです
- SQLCommand – このデータ型は、オブジェクトを定義するために使用されます。これらのオブジェクトは、データベースに対して SQL 操作を実行します。このオブジェクトには、SQL Server データベースに対して実行される SQL コマンドが保持されます。
- DataAdapter オブジェクトは、SQL コマンドの挿入、削除、更新を実行するために使用されます。
- 次に、SQL コマンド文字列を保持する文字列変数「SQL」を定義します。
- 次のステップは実際に、データベースに対して使用される SQL ステートメントを定義することです。 この例では、insert ステートメントを発行しています。 これにより、TutorialID=3 および TutorialName=VB.Net のレコードが挿入されます。
- 次に、データベースに対して SQL ステートメントを実行するために使用されるコマンド オブジェクトを作成します。 SQL コマンドでは、接続オブジェクトと SQL 文字列を渡す必要があります。
- データ アダプター コマンドでは、
- 挿入 SQL コマンドをアダプターに関連付けます。
- 次に、「ExecuteNonQuery」メソッドを発行します。 これは、データベースに対して Insert ステートメントを実行するために使用されます。
- 「ExecuteNonQuery」メソッドは以下で使用されます。 C# データベースに対して任意の DML ステートメント (挿入、削除、更新操作) を発行します。
- ASP.Net でテーブル ステートメントを発行するには、「ExecuteNonQuery」メソッドを使用する必要があります。
- 最後に、データベース操作に関連するすべてのオブジェクトを閉じます。これは常に良い習慣であることを忘れないでください。
ステップ2) XNUMX 番目のステップとして、「データへのアクセス」セクションと同じコードを追加しましょう。 最近のテーブルデータをブラウザに表示します。 そのために、以下のコードをdemo.aspx.csファイルに追加します。
namespace DemoApplication
{
public partial class Demo System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
SqlCommand sqlquery;
SqlDataReader dataReader;
String Output =" ";
sql = "Select TutorialID,TutorialName from demotb";
sqlquery = new SqlCommand(sql, cnn);
dataReader = command.ExecuteReader();
while (dataReader.Read())
{
Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>";
}
Response.Write(Output);
dataReader.Close();
command.dispose();
conn.Close();
}
}
}
上記のコードを設定し、プロジェクトを Visual Studio で実行すると、以下の出力が得られます。
出力:-
ブラウザ ウィンドウに、行がデータベースに正常に挿入されたことが表示されます。
UpdateCommand を使用してデータベース レコードを更新する
ASP.Net には、データベースから既存のレコードを更新する機能があります。 レコードを挿入する例として上記で使用したのと同じテーブル構造を考えてみましょう。
| チュートリアルID | チュートリアル名 |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
| 3 | VB.Net |
フォームのコードを変更して、次の行を更新できるようにします。古い行の値は、TutorialID が「3」、Tutorial Name が「VB.Net」です。これを「VB.Net 完了」に更新しますが、Tutorial ID の行の値はそのままにします。
古い行
| チュートリアルID | チュートリアル名 |
|---|---|
| 3 | VB.Net |
新しい行
| チュートリアルID | チュートリアル名 |
|---|---|
| 3 | VB.Netの完成 |
ステップ1) 最初のステップとして、プログラムに次のコードを追加しましょう。以下のコード スニペットは、データベース内の既存のレコードを更新するために使用されます。
namespace DemoApplication
{
public partial class Demo System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
SqlCommand command;
SqlDataAdapter adapter = new SqlDataAdapter();
String sql="";
sql = "Update demotb set TutorialName='"VB.Net Complete"+"' where TutorialID=3";
command = new SqlCommand(sql,cnn);
adapter.InsertCommand = new SqlCommand(sql,cnn);
adapter.InsertCommand.ExecuteNonQuery;
command.Dispose():
cnn.Close();
}
}
}
コードの説明:-
- 最初のステップは、次の変数を作成することです
- SQLCommand – このデータ型は、データベースに対して SQL 操作を実行するオブジェクトを定義するために使用されます。このオブジェクトには、SQL Server データベースに対して実行される SQL コマンドが保持されます。
- dataadapter オブジェクトは、SQL コマンドの挿入、削除、更新を実行するために使用されます。
- 次に、SQL コマンド文字列を保持する SQL である文字列変数を定義します。
- 次のステップは、実際にデータベースに対して使用される SQL ステートメントを定義することです。 私たちの場合は、「更新」ステートメントを発行しています。 これにより、チュートリアル名が「VB.Net Complete」に更新されます。 TutorialID は変更されず、値は 3 になります。
- 次にコマンドオブジェクトを作成します。 これは、データベースに対して SQL ステートメントを実行するために使用されます。 SQL コマンドでは、接続オブジェクトと SQL 文字列を渡しました。
- データ アダプター コマンドでは、insert SQL コマンドをアダプターに関連付けます。 次に、ExecuteNonQuery メソッドを発行します。 これは、データベースに対して Update ステートメントを実行するために使用されます。
- 最後に、データベース操作に関連するすべてのオブジェクトを閉じます。これは常に良い習慣であることを忘れないでください。
ステップ2) XNUMX 番目のステップとして、「データへのアクセス」セクションと同じコードを追加しましょう。 最近のテーブルデータをブラウザに表示します。 そのために、以下のコードを追加します
namespace DemoApplication
{
public partial class Demo System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
SqlCommand sqlquery;
SqlDataReader dataReader;
String Output =" ";
sql = "Select TutorialID,TutorialName from demotb";
sqlquery = new SqlCommand(sql, cnn);
dataReader = command.ExecuteReader();
while (dataReader.Read())
{
Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>";
}
Response.Write(Output);
dataReader.Close();
command.dispose();
conn.Close();
}
}
}
上記のコードを設定し、Visual Studio を使用してプロジェクトを実行すると、以下の出力が得られます。
出力:-
ブラウザ ウィンドウに、データベース内の行が正常に更新されたことが表示されます。
DeleteCommandを使用してデータベースレコードを削除する
ASP.Net はデータベースから既存のレコードを削除できます。 レコードを削除する例として、上で使用したのと同じテーブル構造を考えてみましょう。
| チュートリアルID | チュートリアル名 |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
| 3 | VB.Netの完成 |
フォームのコードを変更して、次の行を削除できるようにしましょう。
| チュートリアルID | チュートリアル名 |
|---|---|
| 3 | VB.Netの完成 |
それでは、プログラムに次のコードを追加してみましょう。以下のコード スニペットは、データベース内の既存のレコードを削除するために使用されます。
ステップ1) 最初のステップとして、プログラムに次のコードを追加しましょう。以下のコード スニペットは、データベース内の既存のレコードを削除するために使用されます。
namespace DemoApplication
{
public partial class Demo System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
SqlCommand command;
SqlDataAdapter adapter = new SqlDataAdapter();
String sql="";
sql = "Delete demotb where TutorialID=3";
command = new SqlCommand(sql,cnn);
adapter.DeleteCommand = new SqlCommand(sql,cnn);
adapter.DeleteCommand.ExecuteNonQuery;
command.Dispose():
cnn.Close();
}
}
}
コードの説明:-
- このコードの主な違いは、削除 SQL ステートメントを発行していることです。 delete ステートメントは、TutorialID の値が 3 である demotb テーブル内の行を削除するために使用されます。
- データ アダプター コマンドでは、insert SQL コマンドをアダプターに関連付けます。 また、データベースに対して削除ステートメントを実行するために使用される「ExecuteNonQuery」メソッドも発行します。
ステップ2) XNUMX 番目のステップとして、「データへのアクセス」セクションと同じコードを追加しましょう。 最近のテーブルデータをブラウザに表示します。 そのために、以下のコードを追加します。
namespace DemoApplication
{
public partial class Demo System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
SqlCommand sqlquery;
SqlDataReader dataReader;
String Output ="";
sql = "Select TutorialID,TutorialName from demotb";
sqlquery = new SqlCommand(sql, cnn);
dataReader = command.ExecuteReader();
while(dataReader.Read())
{
Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>";
}
Response.Write(Output);
dataReader.Close();
command.dispose();
conn.Close();
}
}
}
上記のコードを設定し、Visual Studio を使用してプロジェクトを実行すると、以下の出力が得られます。
出力:-
Asp.net コントロールをデータに接続する
SQLCommand や SQLReader などの ASP.Net コマンドを使用してデータベースからデータをフェッチする方法を説明しました。 また、テーブルの各行を読み取って Web ページに表示する方法も確認しました。
コントロールをテーブル内のさまざまなフィールドに直接リンクするために使用できるメソッドがあります。 現時点では、以下のコントロールのみを ASP.Net アプリケーションにバインドできます。
- チェックボックスリスト
- ラジオボタンリスト
- ドロップダウンリスト
- リストボックス
それでは、ASP.Net でコントロール バインディングを使用する方法の例を見てみましょう。ここでは、リスト ボックスの例を取り上げます。データベースに次のデータがあるとします。
| チュートリアルID | チュートリアル名 |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
| 3 | VB.Netの完成 |
Listbox コントロールを使用して、Demotb テーブルからデータを自動的に取得する方法を見てみましょう。
これを達成するには、以下の手順に従ってください。
ステップ1) 基本的な Web フォームを構築します。Visual Studio のツールボックスから、ラベルとリストボックスの 2 つのコンポーネントをドラッグ アンド ドロップします。次に、次のサブステップを実行します。
- 最初のラベルのテキスト値を TutorialID として入力します
- XNUMX 番目のラベルのテキスト値を TutorialName として入力します。
上記の手順を実行すると、フォームはどのように表示されるかを以下に示します。
ステップ2) 次のステップでは、各リストボックスをデータベース テーブルに接続し始めます。
- まず、チュートリアル ID のリストボックスをクリックします。これにより、コントロールの横に別のダイアログ ボックスが表示されます。
- ダイアログボックスから、「データ ソースの選択」オプションをクリックする必要があります。
ステップ3) 次にダイアログ ボックスが表示されます。これを使用して、新しいデータ ソースを作成できます。データ ソースは、データベースへの接続を表します。[新しいデータ ソース] オプションを選択します。
ステップ4) 最後のステップで新しいデータ ソースを選択すると、次の画面が表示されます。 ここで、作成するデータ ソースの種類について言及する必要があります。
- SQL Server データベースを操作するには、データベース オプションを選択します。
- 次に、データ ソースに名前を付ける必要があります。 ここでは、DemoDataSource という名前を付けています。
- 最後に、「OK」ボタンをクリックして次の画面に進みます。
ステップ5) 次に、データベースへの接続を作成する必要があります。 次の画面で、「新しい接続」ボタンをクリックします。
ステップ6) 次に、データベースに接続するための資格情報を追加する必要があります。
- SQL Server が存在するサーバー名を選択します
- ユーザーIDとパスワードを入力してデータベースに接続します
- データベースを「demotb」として選択します
- [OK]ボタンをクリックします。
ステップ7) 次の画面では、Demotb テーブルが表示されます。 「次へ」ボタンをクリックしてデフォルト設定を受け入れます。
ステップ8) 次の画面で接続をテストできるようになります。
- [クエリのテスト] ボタンをクリックして、テーブルから値を取得できるかどうかを確認します。
- 「完了」ボタンをクリックしてウィザードを完了します。
ステップ9) 最後の画面で、「OK」ボタンをクリックできます。これにより、TutorialID リストボックスが「demotb」テーブルの TutorialID フィールド名にバインドされます。
ステップ10) ここで、チュートリアル名リストボックスをチュートリアル名フィールドにバインドします。
- まず、チュートリアル名リストボックスをクリックします。
- 次に、リストボックスの横に表示されるダイアログ ボックスでデータ ソースから選択します。
ステップ11) 次の画面でデータ ソースを選択すると、DemoDataSource がすでに表示されています。
- デモデータ ソースの選択
- [OK]ボタンをクリックします。
上記のすべての手順が示されているように実行されると、以下の出力が得られます。
出力:-
出力から、リストボックスにはそれぞれチュートリアルIDとチュートリアル名が表示されていることがわかります。
製品概要
- ASP.Net は、次のようなデータベースを操作できます。 Oracle および Microsoft SQL Server.
- ASP.Net には、データベースの操作に必要なすべてのコマンドがあります。これには、データベースへの接続の確立が含まれます。選択、更新、挿入、削除などの操作を実行できます。
- ASP.Net の datareader オブジェクトは、データベースから返されたすべてのデータを保持するために使用されます。 ASP.net の While ループを使用すると、データ行を一度に XNUMX つずつ読み取ることができます。
- データ アダプタ オブジェクトは、挿入、削除、更新などの SQL 操作を実行するために使用されます。
- ASP.Net は、テーブル内のさまざまなフィールドにコントロールをバインドできます。 これらは、ASP.Net でデータ ソースを定義することによってバインドされます。 データ ソースは、データベースからデータを取得し、コントロールにデータを入力するために使用されます。



























