重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

現在Microsoft VisualBasic 2010 Expressにて、データベースを利用してアプリケーションを作成しようとしています。
今まではMS Access にて制作しておりましたので、完全な初心者というわけではありませんが、VB2010Express を使ってのソフト作成は初めてです。
データベースエクスプローラーを使ってデータの接続や、データセットを作成してのデータの編集はできました。

ここからが質問ですが、直接コードを書き込みデータベース操作をする際のデータベースへの接続方法がわかりません。

VBの書籍やヘルプを参考にして以下のようなコードを作成しました。

Dim scn As New OleDb.OleDbConnection
scn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ファイル名"

scn.Open()
(以下省略)~

このコードを実行すると次のようなエラーがでます。

「OleDb.OleDbException はハンドルされませんでした。
データベースの形式 'ファイル名' を認識できません。」

ファイル名(C:\Users\~\ファイル名.sdf)はデータベースエクスプローラーで作成したSQL Server Compact 3.5 のデータベースファイルです。

単純にデータベースエクスプローラーで作成したデータベースに、上記コードで接続することはできないのでしょうか?
また、コードに間違いなどはありますでしょうか?
よろしくお願いします。

A 回答 (2件)

SQL Server CEでは,


System.Data.OleDb名前空間のクラスではなく,
System.Data.SqlServerCe名前空間のクラスを利用します。

OleDb.OleDbConnection → SqlServerCe.SqlCeConnection
のように,名前空間とクラス名を置き換える必要があります。
# System.Data.SqlServerCe.dllへの参照を忘れずに

MSDN: System.Data.SqlServerCe 名前空間
http://msdn.microsoft.com/ja-jp/library/ec4st0e3 …

また,接続文字列も変更する必要があります。
MSDN: SqlCeConnection.ConnectionString Property (System.Data.SqlServerCe)
http://msdn.microsoft.com/ja-jp/library/system.d …
基本的にはData SourceとPasswordを設定すればよいでしょう。


一応,OLEDBプロバイダもあるようなので,
Microsoft Jet OLEDB4.0というJETエンジンの使用宣言ではなく,
Microsoft.SQLSERVER.CE.OLEDB.3.5というSql Server Compact 3.5の使用宣言にすれば,
OLEDB経由でも使えるようです。
Site: SQL Server Compact OLE DB Provider
http://social.msdn.microsoft.com/Forums/en-US/sq …
# 私は使ったことが無いため,評価は控えます。
    • good
    • 0

>データベースエクスプローラーで作成したSQL Server Compact 3.5 のデータベースファイルです。


がどういったのかは知らないのですが、SQL Serverの類であれば。

http://c.oshiete.goo.ne.jp/kotaeru_reply.php3?q= …
の情報が参考になりませんでしょうか。
多分、IDとかパスワードとか設定されたと思うのですが。

そのあたりだけが、アクセスと思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!