.NET/ODBCを使用してデータベースに接続しSQLを実行するサンプル
の編集
Top
/
.NET
/
ODBCを使用してデータベースに接続しSQLを実行するサンプル
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
.NET
.NET/.NETでpingを実現する・System.Net.NetworkInformation.Ping
.NET/ARPテーブルを取得し表示するサンプル・GetIpNetTable
.NET/CPUコア毎の使用率を取得する
.NET/CPU使用率を取得する
.NET/DateとDateTimeの違い
.NET/HttpClientを使って指定したURLのページを取得する
.NET/IPv4からMACアドレス取得する・SendARP
.NET/IPアドレスからホスト名を取得するサンプルコード
.NET/ListのStringをカンマ区切りにする方法
.NET/Listを配列に配列をListに変換する
.NET/NET6.0でSQLiteを使ってみた Microsoft.Data.Sqlite
.NET/ODBCを使用してデータベースに接続しSQLを実行するサンプル
.NET/String.Splitで空要素を残す、空要素を削除するオプションについて
.NET/StringBuilderをバイト配列に変換する
.NET/Stringの配列をCSVにする方法
.NET/UNIX時間への変換・DateTimeOffset
.NET/UNIX時間をDateTimeOffset, DateTimeにする
.NET/Web APIからJSONを取得し値を表示する・DataContractJsonSerializer
.NET/WMIを使って物理メモリ・仮想メモリの使用量等を取得する
.NET/アルファベットを大文字、小文字に変換する
.NET/インストールされているODBCドライバ一覧を取得するサンプル
.NET/コンソールプログラムからトースト通知をするサンプル
.NET/サスペンド前・復帰の時に処理を行いたい
.NET/スペースのみの文字列、空の文字列、サイズ0の文字列を判定する
.NET/スリープの抑止、モニター電源オフの抑止のサンプルコード
.NET/ターゲットにしている.NETを確認する操作手順
.NET/テキストファイルの読込・ReadAllText,ReadAllLines
.NET/テキストファイルの読込・StreamReader
.NET/テンポラリファイルの作成・ランダムな文字列の作成を作成する
.NET/テンポラリファイル名を取得する・GetRandomFileName
.NET/ディレクトリの有無を確認する
.NET/ネットワークカードの各種情報を取得するサンプルコード
.NET/バイト配列にファイルの内容をすべて読み込む
.NET/バイナリーファイルの作成・リード・ライト
.NET/ファイルなの?ディレクトリなの?の判別
.NET/ファイルの有無を確認する
.NET/ファイル一覧を取得する・GetFiles,EnumerateFiles
.NET/プログラムに渡された引数を取得する方法
.NET/ユーザーが無操作の状態を取得する・GetLastInputInfo
.NET/三項演算子のサンプルコード
.NET/四捨五入をするときはMidpointRounding.AwayFromZeroにすること
.NET/指定した時間間隔でイベントを発行する・Timer
.NET/数値を指定した桁数分ゼロで埋めたい・ToString
.NET/文字列(String)を左右逆転し文字列(String)で返却する方法
.NET/文字列をバイト配列に変換・バイト配列を文字列に変換
.NET/文字列を区切り文字で分割する方法・Split
.NET/文字列宣言の先頭の@について
.NET/文字列数値を指定した桁数分ゼロで埋めたい・PadLeft
.NET/文字列日付をDateTimeに変換する
.NET/文字列配列orList配列に指定した文字列が存在するかを確認する方法
.NET/時間(日数+時間)が格納できるTimeSpan
.NET/月末の日を取得する方法・DaysInMonth
.NET/現在の日時を取得する
.NET/符号付バイトsbyte,符号なしbyteをintegerに変換する
.NET/管理者として実行されているかどうか確認するサンプルコード
.NET/連想配列(ハッシュ)のキーと値を取得する
.NET/連想配列(ハッシュ)を使ってみる・Dictionary
.NET/閏年かを調べる方法
AutoTicketLinkName
FrontPage
MenuBar
OSS
OSS/XYM日本円価格(シンボル日本円価格 (XYMJPYPrice)
OSS/ビットコイン日本円価格(ビットコイン日本円価格 (BitcoinJPYPrice)
RecentDeleted
VS
VS/Debug.Writeをイミディエイトウィンドウに出力する方法
VS/Visual Studio 2022に Spy++をインストールする手順
VS/VS2022の配色テーマの変更操作
VS/XAML編集に使うツールボックスの再表示する操作手順
VS/インデントなどコードを整形するショートカットの紹介
VS/コメントにするショートカットキー
VS/ショートカットキーで大文字・小文字に変換する
VS/ビルド中に中断したい場合の操作手順
WPF
WPF/DataGridを使ってみる
WPF/起動してもMainWindowを表示したくない場合
お約束
プライバシーポリシー
最初にお読みください
#navi(../) * .NETでODBCを使用してデータベースに接続しSQLを実行するサンプル [#a987dcfe] .NETのOdbcConnection クラスなどを利用し、データベースにODBC接続するサンプルコードになります。~ SELECT, INSERT, UPDATE を実行してみます。 #contents * 参考サイト [#q7ac6711] -[[Microsoft .NET OdbcConnection クラス>https://docs.microsoft.com/ja-jp/dotnet/api/system.data.odbc.odbcconnection]] -[[Microsoft .NET OdbcConnectionStringBuilder クラス>https://docs.microsoft.com/ja-jp/dotnet/api/system.data.odbc.odbcconnectionstringbuilder]] -[[Microsoft .NET OdbcCommand クラス>https://docs.microsoft.com/ja-jp/dotnet/api/system.data.odbc.odbccommand]] #htmlinsert(windev-top.html) * 関連記事 [#y1e63a59] -[[64bit版Windowsで32bit版ODBCの設定を行う方法>https://db.just4fun.biz/?ODBC/64bit%e7%89%88Windows%e3%81%a732bit%e7%89%88ODBC%e3%81%ae%e8%a8%ad%e5%ae%9a%e3%82%92%e8%a1%8c%e3%81%86%e6%96%b9%e6%b3%95]] * 使用したデータベースとODBCドライバ [#c672c0e4] -PostgreSQL postgres=# select version(); version -------------------------------------------------------------------------- PostgreSQL 12.1 on x86_64-pc-cygwin, compiled by gcc (GCC) 7.4.0, 64-bit (1 行) -PostgreSQL ODBC driver~ psqlODBC - https://odbc.postgresql.org/~ -使用したpsqlODBC~ psqlodbc_12_01_0000-x64.zip * 動作確認環境 [#oe41d037] -Windows 10 ver.1909 -Visual Studio 2019 -.NET Framework 4.7.2~ ''.NET Core 3.1で System.Data.Odbcを使用したい場合は、NuGet Galleryに公開されていますね。(2020/01/18現在)''~ https://www.nuget.org/packages/System.Data.Odbc/ * ビルド(C#),コンパイル(VB)時の注意 [#f819ab12] ODBCドライバに対する、対象プラットフォームが適切でない場合は、以下の例外が発生ます。~ ''ERROR [IM014] [Microsoft][ODBC Driver Manager] 指定された DSN には、ドライバーとアプリケーションとのアーキテクチャの不一致が含まれています''~ また、32bit版のODBCドライバしかない場合は、対象プラットフォーム(C#)、ターゲットCPU(VB)をx86にしてビルドすれば、この例外が発生しないと思います。~ 32bitを選ぶになっていませんか? ** C# [#ne4b6c21] #ref(02.png) ** Visual Basic(VB) [#d3181802] #ref(03.png) * ODBC接続をしてSELECT, INSERT, UPDATE をするサンプルコード [#w6adf8be] 以下に C#, Visual Basic(VB) によるデータベース接続とデータベース操作のサンプルコードを記します。~ ODBCドライバのインストール、ODBCデータソース設定は完了していることを前提とします。~ 以下のキャプチャでは、OdbcSampleDSNを設定しました。 #ref(01.png) #br サンプルコード内で CREATE TABLE, DROP TABLEも行っています。 ** C# ODBCサンプルコード [#y7b200d2] using System; using System.Data; using System.Data.Odbc; namespace OdbcSampleCS { class Program { static void Main(string[] args) { string DSN = @"OdbcSampleDSN"; string createTable = @"create table t1 (c1 int, c2 varchar(100))"; string dropTable = @"drop table t1"; string selectSQL = @"select * from t1"; string insertSQL = @"insert into t1 values(?,?)"; string updateSQL = @"update t1 set c2 = ? where c1 = ?"; OdbcConnectionStringBuilder odbcConBuilder = new OdbcConnectionStringBuilder(); odbcConBuilder.Dsn = DSN; using (OdbcConnection odbcCon = new OdbcConnection(odbcConBuilder.ToString())) { OdbcCommand cmd = new OdbcCommand(); cmd.Connection = odbcCon; try { odbcCon.Open(); OdbcParameter param1 = new OdbcParameter(); OdbcParameter param2 = new OdbcParameter(); // CREATE TABLE cmd.CommandText = createTable; cmd.ExecuteNonQuery(); // INSERT cmd.CommandText = insertSQL; param1.DbType = DbType.Int32; param1.Value = 10; cmd.Parameters.Add(param1); param2.DbType = DbType.String; param2.Value = "Windows10"; cmd.Parameters.Add(param2); cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); // SELECT cmd.CommandText = selectSQL; using (OdbcDataReader odr = cmd.ExecuteReader()) { while (odr.Read()) { Console.WriteLine("{0},{1}", odr["c1"], odr["c2"]); } } // UPDATE cmd.CommandText = updateSQL; param1.DbType = DbType.String; param1.Value = "ウインドウズ10"; cmd.Parameters.Add(param1); param2.DbType = DbType.Int32; param2.Value = 10; cmd.Parameters.Add(param2); cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); // SELECT cmd.CommandText = selectSQL; using (OdbcDataReader odr = cmd.ExecuteReader()) { while (odr.Read()) { Console.WriteLine("{0},{1}", odr["c1"], odr["c2"]); } } // DROP TABLE cmd.CommandText = dropTable; cmd.ExecuteNonQuery(); } catch (Exception ex) { Console.WriteLine(ex.Message); } } } } } ** Visual Basic(VB) ODBCサンプルコード [#m7c96c21] Imports System Imports System.Data Imports System.Data.Odbc Module Module1 Sub Main() Dim DSN As String = "OdbcSampleDSN" Dim createTable As String = "create table t1 (c1 int, c2 varchar(100))" Dim dropTable As String = "drop table t1" Dim selectSQL As String = "select * from t1" Dim insertSQL As String = "insert into t1 values(?,?)" Dim updateSQL As String = "update t1 set c2 = ? where c1 = ?" Dim odbcConBuilder As OdbcConnectionStringBuilder = New OdbcConnectionStringBuilder() odbcConBuilder.Dsn = DSN Using odbcCon As OdbcConnection = New OdbcConnection(odbcConBuilder.ToString()) Dim cmd As OdbcCommand = New OdbcCommand With { .Connection = odbcCon } Try odbcCon.Open() Dim param1 As OdbcParameter = New OdbcParameter() Dim param2 As OdbcParameter = New OdbcParameter() 'CREATE TABLE cmd.CommandText = createTable cmd.ExecuteNonQuery() 'INSERT cmd.CommandText = insertSQL param1.DbType = DbType.Int32 param1.Value = 10 cmd.Parameters.Add(param1) param2.DbType = DbType.String param2.Value = "Windows10" cmd.Parameters.Add(param2) cmd.ExecuteNonQuery() cmd.Parameters.Clear() 'SELECT cmd.CommandText = selectSQL Using odr As OdbcDataReader = cmd.ExecuteReader() While odr.Read() Console.WriteLine("{0},{1}", odr("c1"), odr("c2")) End While End Using 'UPDATE cmd.CommandText = updateSQL param1.DbType = DbType.String param1.Value = "ウインドウズ10" cmd.Parameters.Add(param1) param2.DbType = DbType.Int32 param2.Value = 10 cmd.Parameters.Add(param2) cmd.ExecuteNonQuery() cmd.Parameters.Clear() 'SELECT cmd.CommandText = selectSQL Using odr As OdbcDataReader = cmd.ExecuteReader() While odr.Read() Console.WriteLine("{0},{1}", odr("c1"), odr("c2")) End While End Using 'DROP TABLE cmd.CommandText = dropTable cmd.ExecuteNonQuery() Catch ex As Exception Console.WriteLine(ex.Message) End Try End Using End Sub End Module ** 実行結果 [#g2ffceb5] 上記サンプルコードを実行したときの出力になります。~ INSERT後のSELECTとUPDATE後のSELECTで取得した値が表示されます。 #ref(04.png) 以上、.NETでODBC接続しデータベース操作を行うサンプルコードでした。 #htmlinsert(windev-btm.html)
タイムスタンプを変更しない
#navi(../) * .NETでODBCを使用してデータベースに接続しSQLを実行するサンプル [#a987dcfe] .NETのOdbcConnection クラスなどを利用し、データベースにODBC接続するサンプルコードになります。~ SELECT, INSERT, UPDATE を実行してみます。 #contents * 参考サイト [#q7ac6711] -[[Microsoft .NET OdbcConnection クラス>https://docs.microsoft.com/ja-jp/dotnet/api/system.data.odbc.odbcconnection]] -[[Microsoft .NET OdbcConnectionStringBuilder クラス>https://docs.microsoft.com/ja-jp/dotnet/api/system.data.odbc.odbcconnectionstringbuilder]] -[[Microsoft .NET OdbcCommand クラス>https://docs.microsoft.com/ja-jp/dotnet/api/system.data.odbc.odbccommand]] #htmlinsert(windev-top.html) * 関連記事 [#y1e63a59] -[[64bit版Windowsで32bit版ODBCの設定を行う方法>https://db.just4fun.biz/?ODBC/64bit%e7%89%88Windows%e3%81%a732bit%e7%89%88ODBC%e3%81%ae%e8%a8%ad%e5%ae%9a%e3%82%92%e8%a1%8c%e3%81%86%e6%96%b9%e6%b3%95]] * 使用したデータベースとODBCドライバ [#c672c0e4] -PostgreSQL postgres=# select version(); version -------------------------------------------------------------------------- PostgreSQL 12.1 on x86_64-pc-cygwin, compiled by gcc (GCC) 7.4.0, 64-bit (1 行) -PostgreSQL ODBC driver~ psqlODBC - https://odbc.postgresql.org/~ -使用したpsqlODBC~ psqlodbc_12_01_0000-x64.zip * 動作確認環境 [#oe41d037] -Windows 10 ver.1909 -Visual Studio 2019 -.NET Framework 4.7.2~ ''.NET Core 3.1で System.Data.Odbcを使用したい場合は、NuGet Galleryに公開されていますね。(2020/01/18現在)''~ https://www.nuget.org/packages/System.Data.Odbc/ * ビルド(C#),コンパイル(VB)時の注意 [#f819ab12] ODBCドライバに対する、対象プラットフォームが適切でない場合は、以下の例外が発生ます。~ ''ERROR [IM014] [Microsoft][ODBC Driver Manager] 指定された DSN には、ドライバーとアプリケーションとのアーキテクチャの不一致が含まれています''~ また、32bit版のODBCドライバしかない場合は、対象プラットフォーム(C#)、ターゲットCPU(VB)をx86にしてビルドすれば、この例外が発生しないと思います。~ 32bitを選ぶになっていませんか? ** C# [#ne4b6c21] #ref(02.png) ** Visual Basic(VB) [#d3181802] #ref(03.png) * ODBC接続をしてSELECT, INSERT, UPDATE をするサンプルコード [#w6adf8be] 以下に C#, Visual Basic(VB) によるデータベース接続とデータベース操作のサンプルコードを記します。~ ODBCドライバのインストール、ODBCデータソース設定は完了していることを前提とします。~ 以下のキャプチャでは、OdbcSampleDSNを設定しました。 #ref(01.png) #br サンプルコード内で CREATE TABLE, DROP TABLEも行っています。 ** C# ODBCサンプルコード [#y7b200d2] using System; using System.Data; using System.Data.Odbc; namespace OdbcSampleCS { class Program { static void Main(string[] args) { string DSN = @"OdbcSampleDSN"; string createTable = @"create table t1 (c1 int, c2 varchar(100))"; string dropTable = @"drop table t1"; string selectSQL = @"select * from t1"; string insertSQL = @"insert into t1 values(?,?)"; string updateSQL = @"update t1 set c2 = ? where c1 = ?"; OdbcConnectionStringBuilder odbcConBuilder = new OdbcConnectionStringBuilder(); odbcConBuilder.Dsn = DSN; using (OdbcConnection odbcCon = new OdbcConnection(odbcConBuilder.ToString())) { OdbcCommand cmd = new OdbcCommand(); cmd.Connection = odbcCon; try { odbcCon.Open(); OdbcParameter param1 = new OdbcParameter(); OdbcParameter param2 = new OdbcParameter(); // CREATE TABLE cmd.CommandText = createTable; cmd.ExecuteNonQuery(); // INSERT cmd.CommandText = insertSQL; param1.DbType = DbType.Int32; param1.Value = 10; cmd.Parameters.Add(param1); param2.DbType = DbType.String; param2.Value = "Windows10"; cmd.Parameters.Add(param2); cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); // SELECT cmd.CommandText = selectSQL; using (OdbcDataReader odr = cmd.ExecuteReader()) { while (odr.Read()) { Console.WriteLine("{0},{1}", odr["c1"], odr["c2"]); } } // UPDATE cmd.CommandText = updateSQL; param1.DbType = DbType.String; param1.Value = "ウインドウズ10"; cmd.Parameters.Add(param1); param2.DbType = DbType.Int32; param2.Value = 10; cmd.Parameters.Add(param2); cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); // SELECT cmd.CommandText = selectSQL; using (OdbcDataReader odr = cmd.ExecuteReader()) { while (odr.Read()) { Console.WriteLine("{0},{1}", odr["c1"], odr["c2"]); } } // DROP TABLE cmd.CommandText = dropTable; cmd.ExecuteNonQuery(); } catch (Exception ex) { Console.WriteLine(ex.Message); } } } } } ** Visual Basic(VB) ODBCサンプルコード [#m7c96c21] Imports System Imports System.Data Imports System.Data.Odbc Module Module1 Sub Main() Dim DSN As String = "OdbcSampleDSN" Dim createTable As String = "create table t1 (c1 int, c2 varchar(100))" Dim dropTable As String = "drop table t1" Dim selectSQL As String = "select * from t1" Dim insertSQL As String = "insert into t1 values(?,?)" Dim updateSQL As String = "update t1 set c2 = ? where c1 = ?" Dim odbcConBuilder As OdbcConnectionStringBuilder = New OdbcConnectionStringBuilder() odbcConBuilder.Dsn = DSN Using odbcCon As OdbcConnection = New OdbcConnection(odbcConBuilder.ToString()) Dim cmd As OdbcCommand = New OdbcCommand With { .Connection = odbcCon } Try odbcCon.Open() Dim param1 As OdbcParameter = New OdbcParameter() Dim param2 As OdbcParameter = New OdbcParameter() 'CREATE TABLE cmd.CommandText = createTable cmd.ExecuteNonQuery() 'INSERT cmd.CommandText = insertSQL param1.DbType = DbType.Int32 param1.Value = 10 cmd.Parameters.Add(param1) param2.DbType = DbType.String param2.Value = "Windows10" cmd.Parameters.Add(param2) cmd.ExecuteNonQuery() cmd.Parameters.Clear() 'SELECT cmd.CommandText = selectSQL Using odr As OdbcDataReader = cmd.ExecuteReader() While odr.Read() Console.WriteLine("{0},{1}", odr("c1"), odr("c2")) End While End Using 'UPDATE cmd.CommandText = updateSQL param1.DbType = DbType.String param1.Value = "ウインドウズ10" cmd.Parameters.Add(param1) param2.DbType = DbType.Int32 param2.Value = 10 cmd.Parameters.Add(param2) cmd.ExecuteNonQuery() cmd.Parameters.Clear() 'SELECT cmd.CommandText = selectSQL Using odr As OdbcDataReader = cmd.ExecuteReader() While odr.Read() Console.WriteLine("{0},{1}", odr("c1"), odr("c2")) End While End Using 'DROP TABLE cmd.CommandText = dropTable cmd.ExecuteNonQuery() Catch ex As Exception Console.WriteLine(ex.Message) End Try End Using End Sub End Module ** 実行結果 [#g2ffceb5] 上記サンプルコードを実行したときの出力になります。~ INSERT後のSELECTとUPDATE後のSELECTで取得した値が表示されます。 #ref(04.png) 以上、.NETでODBC接続しデータベース操作を行うサンプルコードでした。 #htmlinsert(windev-btm.html)
テキスト整形のルールを表示する
添付ファイル:
04.png
408件
[
詳細
]
03.png
449件
[
詳細
]
02.png
464件
[
詳細
]
01.png
476件
[
詳細
]