このセクションで話したいのは、誰もが非常に関心があり、非常に興味があるはずの部分です。へへ、それはチュートリアルを書くのが最も得意な部分でもあります - ADO データベースアクセス これを考えると、私はそう思います。私が昨年書いた「データベースへのアクセス」シリーズの記事を思い出してください。レコード セットなどを理解するのが難しい場合は、まず私の記事を読むことをお勧めします。 ADO (ActiveX Data Objects と訳される) ADO は非常に単純なアイデアであり、ADO は新しいアイデアではなく、いくつかのデータ アクセス テクノロジが統合されているだけです。 ADO を理解していない場合は、ODBC について考えてください。実際、ASP を開発していたときに、何度も ADO を使用したことを覚えていますか? ? はい、それだけです。ADO に関するいくつかの概念的なことについては、ご自身で情報を確認してください。ただし、それがデータにアクセスするためのツールであると想像してください。
OK、次の例は M$ access 2000 データベースに基づいており、テーブル名は次のとおりです。ファイル名は BugTypes.mdb です。 カテゴリ ID です。1 Bugbash に関するもの
2 Appweek のバグ3 .NET レポート
4 内部サポート
それでは、最初にすべてのプログラムを書き出してから、一文ずつ味わってみましょう:
001 : System を使用;
002: System.Data を使用;003: System.Data.ADO を使用;
004:
005: public クラス MainClass
006: {
007: public static void Main ()
008: {
009 : // 接続文字列を設定し、コマンド文字列を選択します 010: string strAccessConn = "PROvider=Microsoft.Jet.OLEDB.4.0;Data Source=BugTypes.MDB";
011 : string strAccessSelect = "SELECT * FROM Categories";
012:
013: //レコードセットを作成し、カテゴリテーブルに入力します
014: DataSet myDataSet = new DataSet();
015: myDataSet.Tables.Add( "Categories");
016:
017: // ADO インスタンスの作成 018: ADOConnection myAccessConn = new ADOConnection(strAccessConn);
019: ADODataSetCommand myAccessDataSetCmd = new ADODataSetCommand();
020: myAccessDataSetCmd.SelectCommand = new ADOCom mand(strAccessSelect, myAccessConn);
021:
022: myAccessConn.Open ();
023: try
024: {
025: myAccessDataSetCmd.FillDataSet(myDataSet,"カテゴリ");
026: }
027:finally
028: {
029: myAccessConn.Close();
030: }
031:
032: try
033: {
034: // レコードセットには複数のテーブルを含めることができ、それらを配列に入れます 035: DataTable[] dta = myDataSet.Tables.All;
036: foreach (DataTable dt in dta)
037: {
038: Console.WriteLine("Found data table {0}", dt.TableName);
039: }
040:
041: //次の 2 行のプログラムは、取得する 2 つのメソッドを示しています。レコードセットからのデータセット内のテーブルの数
042: Console.WriteLine("データセット内の{0}テーブル", myDataSet.Tables.Count) ;
043: Console.WriteLine("データ内の{0}テーブル) set", dta.Length);
044: //プログラムの次の行は、テーブルの名前に基づいてレコード セットから情報を取得する方法を示しています
045: Console.WriteLine("{0} rows in Categories table ", myDataSet.Tables["Categories"].Rows.Count);
046: //列情報はデータベースから自動的に取得されるため、次のコード 047 を使用できます: Console.WriteLine("{0} columns inカテゴリ テーブル", myDataSet.Tables["カテゴリ"].Columns.Count);
048: DataColumn[] drc = myDataSet.Tables["カテゴリ"].Columns.All;
049: int i = 0;
050: foreach (DataColumn dc in drc)
051: {
052: //列の添え字、列名、データ型を出力します053: Console.WriteLine("列名[{0}] は {1}、タイプ {2}" ,i++ , dc.ColumnName, dc.DataType);
054: }
055: DataRow[] dra = myDataSet.Tables["Categories"]. Rows.All;
056: foreach (dra の DataRow dr)
057: {
058: //CategoryID と CategoryName059 を出力します: Console.WriteLine("CategoryName[{0}] is {1}", dr[0] , dr[1]);
060: }
061: }
062 : catch (Exception e)
063: {
064: Console.WriteLine("おっと。例外をキャッチしました:n{0}", e.Message );
065: }
066: }
067: }
らしいですこの例は少し複雑です。これは、私が例の選択を誤ったからです (笑)。しかし、注意深く分析した後でも、この例ではいくつかの特別な点について話しましょう。 ASP では、コマンド文字列はコマンド オブジェクトとして扱われる必要があります。020 は、015 行目に myDataSet があることに注意してください。これは、データベース内のカテゴリ テーブルに値を入力するものではありません。これは空のテーブルを作成しているだけであり、025 は実際のデータの入力です。
この例の出力は次のとおりです:
データテーブルカテゴリが見つかりました
データセット内に1テーブル
データセット内に1テーブル
カテゴリテーブルに4行
カテゴリテーブルに2列
列名[0]はInt32型のCategoryIDです
列名[1]はCategoryName、 System.String 型の
CategoryName[1] は Bugbash のものです
CategoryName[2] は Appweek Bugs です
CategoryName[3] は .NET Reports です
CategoryName[4] は内部サポートです
わかりました、それだけです、SUNWEN は本当にやりたいですO.K.886!
上記は SUNWEN チュートリアル - C# Advanced (8) の内容です。関連コンテンツについては、お支払いください。 PHP 中国語 Web サイト (www.php.cn) に注意してください。