.NET/ODBCを使用してデータベースに接続しSQLを実行するサンプル
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
#navi(../)
* .NETでODBCを使用してデータベースに接続しSQLを実行するサ...
.NETのOdbcConnection クラスなどを利用し、データベースにOD...
SELECT, INSERT, UPDATE を実行してみます。
#contents
* 参考サイト [#q7ac6711]
-[[Microsoft .NET OdbcConnection クラス>https://docs.micr...
-[[Microsoft .NET OdbcConnectionStringBuilder クラス>http...
-[[Microsoft .NET OdbcCommand クラス>https://docs.microso...
#htmlinsert(windev-top.html)
* 関連記事 [#y1e63a59]
-[[64bit版Windowsで32bit版ODBCの設定を行う方法>https://db...
* 使用したデータベースとODBCドライバ [#c672c0e4]
-PostgreSQL
postgres=# select version();
version
--------------------------------------------------------...
PostgreSQL 12.1 on x86_64-pc-cygwin, compiled by gcc (G...
(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を使用したい場合は、NuG...
https://www.nuget.org/packages/System.Data.Odbc/
* ビルド(C#),コンパイル(VB)時の注意 [#f819ab12]
ODBCドライバに対する、対象プラットフォームが適切でない場...
''ERROR [IM014] [Microsoft][ODBC Driver Manager] 指定され...
また、32bit版のODBCドライバしかない場合は、対象プラットフ...
32bitを選ぶになっていませんか?
** C# [#ne4b6c21]
#ref(02.png)
** Visual Basic(VB) [#d3181802]
#ref(03.png)
* ODBC接続をしてSELECT, INSERT, UPDATE をするサンプルコー...
以下に 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 i...
string dropTable = @"drop table t1";
string selectSQL = @"select * from t1";
string insertSQL = @"insert into t1 values(?...
string updateSQL = @"update t1 set c2 = ? wh...
OdbcConnectionStringBuilder odbcConBuilder =...
odbcConBuilder.Dsn = DSN;
using (OdbcConnection odbcCon = new OdbcConn...
{
OdbcCommand cmd = new OdbcCommand();
cmd.Connection = odbcCon;
try
{
odbcCon.Open();
OdbcParameter param1 = new OdbcParam...
OdbcParameter param2 = new OdbcParam...
// 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.Exec...
{
while (odr.Read())
{
Console.WriteLine("{0},{1}",...
}
}
// 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.Exec...
{
while (odr.Read())
{
Console.WriteLine("{0},{1}",...
}
}
// 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...
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 = ? ...
Dim odbcConBuilder As OdbcConnectionStringBuilde...
odbcConBuilder.Dsn = DSN
Using odbcCon As OdbcConnection = New OdbcConnec...
Dim cmd As OdbcCommand = New OdbcCommand Wit...
.Connection = odbcCon
}
Try
odbcCon.Open()
Dim param1 As OdbcParameter = New OdbcPa...
Dim param2 As OdbcParameter = New OdbcPa...
'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.Execut...
While odr.Read()
Console.WriteLine("{0},{1}", odr...
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.Execut...
While odr.Read()
Console.WriteLine("{0},{1}", odr...
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を実行するサ...
.NETのOdbcConnection クラスなどを利用し、データベースにOD...
SELECT, INSERT, UPDATE を実行してみます。
#contents
* 参考サイト [#q7ac6711]
-[[Microsoft .NET OdbcConnection クラス>https://docs.micr...
-[[Microsoft .NET OdbcConnectionStringBuilder クラス>http...
-[[Microsoft .NET OdbcCommand クラス>https://docs.microso...
#htmlinsert(windev-top.html)
* 関連記事 [#y1e63a59]
-[[64bit版Windowsで32bit版ODBCの設定を行う方法>https://db...
* 使用したデータベースとODBCドライバ [#c672c0e4]
-PostgreSQL
postgres=# select version();
version
--------------------------------------------------------...
PostgreSQL 12.1 on x86_64-pc-cygwin, compiled by gcc (G...
(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を使用したい場合は、NuG...
https://www.nuget.org/packages/System.Data.Odbc/
* ビルド(C#),コンパイル(VB)時の注意 [#f819ab12]
ODBCドライバに対する、対象プラットフォームが適切でない場...
''ERROR [IM014] [Microsoft][ODBC Driver Manager] 指定され...
また、32bit版のODBCドライバしかない場合は、対象プラットフ...
32bitを選ぶになっていませんか?
** C# [#ne4b6c21]
#ref(02.png)
** Visual Basic(VB) [#d3181802]
#ref(03.png)
* ODBC接続をしてSELECT, INSERT, UPDATE をするサンプルコー...
以下に 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 i...
string dropTable = @"drop table t1";
string selectSQL = @"select * from t1";
string insertSQL = @"insert into t1 values(?...
string updateSQL = @"update t1 set c2 = ? wh...
OdbcConnectionStringBuilder odbcConBuilder =...
odbcConBuilder.Dsn = DSN;
using (OdbcConnection odbcCon = new OdbcConn...
{
OdbcCommand cmd = new OdbcCommand();
cmd.Connection = odbcCon;
try
{
odbcCon.Open();
OdbcParameter param1 = new OdbcParam...
OdbcParameter param2 = new OdbcParam...
// 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.Exec...
{
while (odr.Read())
{
Console.WriteLine("{0},{1}",...
}
}
// 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.Exec...
{
while (odr.Read())
{
Console.WriteLine("{0},{1}",...
}
}
// 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...
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 = ? ...
Dim odbcConBuilder As OdbcConnectionStringBuilde...
odbcConBuilder.Dsn = DSN
Using odbcCon As OdbcConnection = New OdbcConnec...
Dim cmd As OdbcCommand = New OdbcCommand Wit...
.Connection = odbcCon
}
Try
odbcCon.Open()
Dim param1 As OdbcParameter = New OdbcPa...
Dim param2 As OdbcParameter = New OdbcPa...
'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.Execut...
While odr.Read()
Console.WriteLine("{0},{1}", odr...
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.Execut...
While odr.Read()
Console.WriteLine("{0},{1}", odr...
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)
ページ名: