@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

変数を利用した接続パスの指定

1
投稿者投稿内容
C#初心者
常連さん
会議室デビュー日: 2005/12/22
投稿数: 24
投稿日時: 2006-02-28 11:51
oleDBConnectionで接続すると、一部抜粋していますが
Data Source=""\\データ\ネットワーク\DB.mdb"" このようにパスが作成されます。

変数に入っている文字列をパスに変更しようと考えています。
string a="\\データ\ネットワーク\DB.mdb";

Data Source=""+a+"" と記述したら、パスが正しくないようで、エラーがでます。
変数を正しく代入する、記述式を教えてください。




一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2006-02-28 11:59
string a=@"\\データ\ネットワーク\DB.mdb";
でいいんじゃないですか。

参考:
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/csspec/html/vclrfcsharpspec_2_4_4_5.asp
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-02-28 12:12
引用:

C#初心者さんの書き込み (2006-02-28 11:51) より:

Data Source=""+a+"" と記述したら、パスが正しくないようで、エラーがでます。


二重引用符を重ねる必要がないのでは?

コード:

    string a = @"\\データ\ネットワーク\DB.mdb";

    string stConnectionString = "Data Source = " + a + ";";

    MessageBox.Show(stConnectionString);


_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-02-28 12:15
あ、あれ? "\" じゃなくて "¥" になってる??
昔からそうでしたっけ?

テスト...

引用:

\


コード:

    \


なーるほど。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
C#初心者
常連さん
会議室デビュー日: 2005/12/22
投稿数: 24
投稿日時: 2006-02-28 13:46
みなさん、返信ありがとうございます。

コード:

    string a = @"\データネットワークDB.mdb";

    string stConnectionString = "Data Source = " + a + ";";

    MessageBox.Show(stConnectionString);



[/quote]

Data Source=\\データ\ネットワーク\DB.mdb; これでも接続できましたが、
変数を利用しようと、皆さんに言われたとおり組み込もうとしましたが、
変数 'a' は割り当てられていますが、その値が使用されていません。とエラーが帰ってきます。
 
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-02-28 13:52
引用:

C#初心者さんの書き込み (2006-02-28 13:46) より:

Data Source=\データネットワークDB.mdb; これでも接続できましたが、
変数を利用しようと、皆さんに言われたとおり組み込もうとしましたが、
変数 'a' は割り当てられていますが、その値が使用されていません。とエラーが帰ってきます。


エラーではないと思いますが... 一体どこに書いているんですか? ( ̄- ̄;)

コード:

    private void button1_Click(object sender, System.EventArgs e) {
        string a = @"\\データ\ネットワーク\DB.mdb";
    }


こんな風に割り当てられているが "使用していない変数" がある場合に表示される警告ですよ。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
C#初心者
常連さん
会議室デビュー日: 2005/12/22
投稿数: 24
投稿日時: 2006-02-28 14:59
private void InitializeComponent()にある、oleDbConnection1を
Form_Loadに貼り付けて利用していました。
おかげさまで、変数の宣言の場所は修正できました。

MessageBoxで文字列を調べてみましたが、同じでした。しかし、form.dllでエラー
が発生したようです。
Data Source=a;
Data Source="+a+"; とかいろいろ試してはいるんですが、どれも正しくない記述でうまくいきません。よろしくお願いします。


oleDbConnection1.ConnectionString = @"Jet OLEDB:Global Partial Bulk Ops=2;
Jet OLEDB:Registry Path=;Jet OLEDB:Database Locking Mode=1;

Data Source=""\\データ\ネットワーク\DB.mdb"";

Mode=Share Deny None;Jet OLEDB:Engine Type=5;
Jet OLEDB:System database=;
Jet OLEDB:SFP=False;persist security info=False;
Extended Properties=;Jet OLEDB:Compact Without Replica Repair=False;
Jet OLEDB:Encrypt Database=False;Jet OLEDB:Create System Database=False;
Jet OLEDB:Don't Copy Locale on Compact=False;User ID=Admin;
Jet OLEDB:Global Bulk Transactions=1";

と長いですがこのように記述されています。




[ メッセージ編集済み 編集者: C#初心者 編集日時 2006-02-28 15:25 ]
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-02-28 15:14
引用:

C#初心者さんの書き込み (2006-02-28 14:59) より:

Data Source=a;
Data Source="+a+"; とかいろいろ試してはいるんですが、どれも正しくない記述でうまくいきません。よろしくお願いします。


コードを組む場合は "理由があってこう組んでいる" という根拠を持って組みましょう。
でなければ、自分が何故こう組んだのか自分でもわからなくなります。

コード:

    private static void MosaMosaAA() {
        string a = @"\\データ\ネットワーク\DB.mdb";

        this.oleDbConnection1.ConnectionString = (
            "Data Source=" + a + ";" +
            "User ID=Admin;" +
            "Persist Security info=False;" +
            "Mode=Share Deny None;" +
            "Extended Properties=;" +
            "Jet OLEDB:Global Partial Bulk Ops=2;" +
            "Jet OLEDB:Registry Path=;" +
            "Jet OLEDB:Database Locking Mode=1;" +
            "Jet OLEDB:Engine Type=5;" +
            "Jet OLEDB:System database=;" +
            "Jet OLEDB:SFP=False;" +
            "Jet OLEDB:Compact Without Replica Repair=False;" +
            "Jet OLEDB:Encrypt Database=False;" +
            "Jet OLEDB:Create System Database=False;" +
            "Jet OLEDB:Don't Copy Locale on Compact=False;" +
            "Jet OLEDB:Global Bulk Transactions=1"
        );
    }


どちらにしても、これだと接続できないと思いますが。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
1

スキルアップ/キャリアアップ(JOB@IT)