出力ウインドウに結果を表示する為に、Debug.WriteLine を使用していますが、他のメッセージが邪魔なので、デバッグ =>オプション の 『出力』で、【全てのデバッグ出力】以外を オフにしています。 元々は、VB.net でしたが、Telerik Code Converter で変換して少し手を加えました。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.OleDb; using System.Diagnostics; namespace MsAccess1 { class Program { static void Main(string[] args) { using (OleDbConnection myCon = new OleDbConnection()) using (OleDbCommand myCommand = new OleDbCommand()) { // SQL文字列格納用 string myQuery = null; string myPath = @"C:\tmp\販売管理C.accdb"; // string myPath = @"C:\tmp\販売管理C.mdb"; // 古い MsAccess // 接続文字列の作成 myCon.ConnectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};", myPath); // 出力ウインドウに表示 // デバッグ>オプション の 『出力』で、【全てのデバッグ出力】以外を オフにする Debug.WriteLine(myCon.ConnectionString); // ********************* // 接続 // ********************* try { // 接続文字列を使用して接続 myCon.Open(); // コマンドオブジェクトに接続をセット myCommand.Connection = myCon; // コマンドを通常 SQL用に変更 myCommand.CommandType = System.Data.CommandType.Text; } catch (Exception ex) { Debug.WriteLine(ex.Message); return; } myQuery = "select * from 社員マスタ"; myCommand.CommandText = myQuery; // ********************* // レコードセット取得 // ********************* try { using (OleDbDataReader myReader = myCommand.ExecuteReader()) { // ********************* // 列数 // ********************* int nCols = myReader.FieldCount; Type fldType; // カラムループ用 int idx = 0; while (myReader.Read()) { for (idx = 0; idx <= nCols - 1; idx++) { if (idx != 0) { Debug.Write(","); } // NULL でない場合 if (!myReader.IsDBNull(idx)) { // 列のデータ型を取得 fldType = myReader.GetFieldType(idx); // 文字列 if (fldType.Name == "String") { Debug.Write(myReader.GetValue(idx) + ""); continue; } if (fldType.Name == "Int32") { Debug.Write(myReader.GetInt32(idx).ToString() + ""); continue; } if (fldType.Name == "DateTime") { Debug.Write(myReader.GetDateTime(idx).ToString() + ""); continue; } Debug.Write(myReader.GetValue(idx).ToString() + ""); } else { Debug.Write(""); } } // 1行の最後 Debug.WriteLine(""); } // リーダを使い終わったので閉じる myReader.Close(); } } catch (Exception ex) { myCon.Close(); Debug.WriteLine(ex.Message); return; } myCon.Close(); } // 最外の using の終わり } // Main の終わり } // class の終わり } // namespace の終わり
|
【VS(C#)の最新記事】
- Replit : cs-list
- C# : Excel の新しいブックのデフォルトのシートのセルに直接値をセットして、オートフィルを Range オブジェクトから実行する
- C#( Form ) : ウインドウ枠の無い吹き出しの作成
- C# のタプル( Visual Studio 2017 でテスト )
- C# : インターネット上の JSON ファイルのフォーマットを クラスとして定義して1行でオブジェクト化して使用する
- C# の文法的文字列処理
- C# : System.Data.Odbc によるデータベースのテーブルからのデータ取得処理( サンプルの SQL は MySQL 用です )
- C# : Excel を データベースとして DataGridView に読み込む
- C# : dynamic 型 による Excel へのアクセス
- C# : フォームを表示せずに、通知領域にアイコンを表示させる常駐プログラム
- Microsoft Access に対してSQLを入力してその結果を DataGridView に表示する最も簡単なコード
- C# : System.Data.Odbc データ取得(SELECT)処理( MySQL ) : ※ using 無し( Dispose 実行 )
- C# : SQL 文を外部テキストにして、String.Format でデータ部分を置き換えて利用する
- C# コンソールアプリを AN HTTPD で実行
- C# : SQLServer( SQLExpress ) の SMO を使用してテーブルの CREATE TABLE 文 を取得する
- C# : DataGridView に TKMP.DLL の IMAP(POP3) で受信したメールを非同期に表示する( 添付ファイルも取得 )
- C# : TKMP.DLLを使った、メール送信テンプレート
- C# と VB.net : TKMP.DLL を使って IMAP でメール本文の一覧を取得する( コンソール )
- C# でDataTable と DataSource を使用して、DataGridView にデータを表示するテンプレート( 行をダブルクリックしてダイアログを表示して行データを処理 )
- (C#) / VS2010 または VS2012 : TKMP.DLL(3.1.2 または 3.1.8)を使った、『さくらインターネット』用メール送信テンプレート