###前提・実現したいこと
現在C#でデータベースアクセスのアプリを開発しておりまして、その際のトラブルについて質問です。
###発生している問題・エラーメッセージ
AWS EC2上のWindows7(Windows server)から、Visual StudioでAWS RDS(Redshift)に接続したいです。
Redshiftに接続するコードを書くと
ERROR [IM002] [Microsoft][ODBC Driver Manager] データ ソース名および指定された既定のドライバーが見つかりません。
###該当のソースコード
C#
1string connString = "Driver={Amazon Redshift (x64)}; Server=development-redshift.atsuc6oz0jogb.ap-northeast-1.redshift.amazonaws.com; Database=mydsn; UID=myuserid; PWD=mypassword; Port=5439"; 2 3string connString = "Driver={Amazon Redshift (x64)}; Server=development-redshift.atsuc6oz0jogb.ap-northeast-1.redshift.amazonaws.com; Database=mydsn; UID=myuserid; PWD=mypassword; Port=5439"; 4 5string connString = "host=development-redshift.atsuc6oz0jogb.ap-northeast-1.redshift.amazonaws.com; Dsn=mydsn; UID=myuserid; PWD=mypassword; Port=5439"; 6 7string connString = "Driver={Amazon Redshift (x86)}; Server=development-redshift.atsuc6oz0jogb.ap-northeast-1.redshift.amazonaws.com; Database=mydsn; UID=myuserid; PWD=mypassword; Port=5439"; 8 9string connString = "host=development-redshift.atsuc6oz0jogb.ap-northeast-1.redshift.amazonaws.com; Dsn=development-redshift; UID=myuserid; PWD=mypassword; Port=5439"; 10 11string connString = "Driver={Amazon Redshift (x64)}; Server=development-redshift.atsuc6oz0jogb.ap-northeast-1.redshift.amazonaws.com; Database=mydsn; UID=myuserid; PWD='mypassword'; Port=5439";
using System; using System.Data.Odbc; using System.Data; namespace ConsoleApplication8 { class Program { static void Main(string[] args) { DataSet ds = new DataSet(); DataTable dt = new DataTable(); string server = ""; string port = "5439"; string masterUsername = ""; string masterUserPassword = ""; string DBName = ""; string query = "select *;"; try { //Redshift ODBC Driver - 64 bits string connString = "上記"; // Make a connection using the psqlODBC provider. OdbcConnection conn = new OdbcConnection(connString); conn.Open(); var redshift = new Amazon.Redshift.Model.Cluster(); //redshift. //redshifftconnection = new RedshiftConnection(); // Try a simple query. string sql = query; OdbcDataAdapter da = new OdbcDataAdapter(sql, conn); da.Fill(ds); dt = ds.Tables[0]; foreach (DataRow row in dt.Rows) { Console.WriteLine(row["table_catalog"] + ", " + row["table_name"]); } conn.Close(); Console.ReadKey(); } catch (Exception ex) { Console.Error.WriteLine(ex.Message); Console.ReadKey(); } } } }
###試したこと
AmazonRedshiftODBC64-1.3.7.1000.msiをインストール。
ODBCデータソースアドミニストレーターでMicrosoft WindowsのODBC接続用システムDSNエントリを作成。(接続テスト成功。)
http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/install-odbc-driver-windows.html
プロジェクトにAWSSDK.RedshiftをNuGetする。AWSSDK.Redshift 3.3.3.3
http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/connecting-in-code.html
のページの最下部の.NETコードを参照し、
string connString = "Driver={Amazon Redshift (x64)};" + String.Format("Server={0};Database={1};" + "UID={2};PWD={3};Port={4};SSL=true;Sslmode=Require", server, DBName, masterUsername, masterUserPassword, port);
を上記のように書き換え。
connStringをいろいろ書き換えてみましたが、どれも同じ結果。
###補足情報(言語/FW/ツール等のバージョンなど)
Visual Studio 2015 Express (Desktop)
あなたの回答
tips
プレビュー