C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: SQLserverでDB


(過去ログ 17 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■6706 / inTopicNo.1)  SQLserverでDB
  
□投稿者/ TASHIRO (1回)-(2007/08/22(Wed) 16:25:45)

分類:[.NET 全般] 

よろしくお願いします。

開発環境はvisualstudio2005,データベースはsql server,言語はC#です。


int i, j;
System.Data.OleDb.OleDbDataAdapter dAdp;
DataSet dSet = new DataSet("t_社員");
DataTable dTbl;
System.Data.OleDb.OleDbConnection cn
= new System.Data.OleDb.OleDbConnection(
"Provider=Microsoft.Jet.OLEDB.4.0;"
+ "Data Source=C:\\SampleDB.mdb;");

//データセットに取得する
dAdp = new System.Data.OleDb.OleDbDataAdapter(
"SELECT * FROM 社員", cn);
dAdp.Fill(dSet, "t_社員");

//DataTableオブジェクトに取得してから結果を確認する
dTbl = dSet.Tables["t_社員"];
for (i = 0; i < dTbl.Rows.Count; i++)
{
for (j = 0; j < dTbl.Columns.Count; j++)
{
MessageBox.Show(dTbl.Rows[i][j] + "\t");
}
System.Diagnostics.Debug.WriteLine("");


データの中身がまったく同一の、拡張子がmdf,mdbのDBを構築します。
上記の場合、messageboxにメッセージが出力されるのですが、
data sourceのファイル名の拡張子がmdfの場合、OleDbExceptionを吐いてしまいます。
そこで、質問が3つあります。

1.上記のような形式でmdfを使えない?

この解決手段として、

2.mdfをmdbに変換する(mdbをmdfに変換する方法は検索していくつか見つけましたがこちらは見つかりませんでした)

3.上記のような方法を取らない。



引用返信 編集キー/
■6709 / inTopicNo.2)  Re[1]: SQLserverでDB
□投稿者/ ひろ (13回)-(2007/08/22(Wed) 16:56:52)
No6706 (TASHIRO さん) に返信

えっと、挙げて貰ったプログラムソースにおいて、

> System.Data.OleDb.OleDbConnection cn
> = new System.Data.OleDb.OleDbConnection(
> "Provider=Microsoft.Jet.OLEDB.4.0;"
> + "Data Source=C:\\SampleDB.mdb;");

の「SampleDB.mdb」を「SampleDB.mdf」と記述するとエラーが発生する、で良いのでしょうか?

 SQLServer は詳しくないのですが、ConnectionString(OleDbConnection への引数文字列のこと)の
 記述方法が違うと思うのですが...

引用返信 編集キー/
■6732 / inTopicNo.3)  Re[2]: SQLserverでDB
□投稿者/ さかもと (3回)-(2007/08/22(Wed) 22:25:20)
さかもとと申します。

MDFファイルは「1ファイル」としてAccessのMDBファイルのように扱えるものではありません。

1=このような形式では扱えません
2=MDB→MDFへはアップサイジングウィザードで可能ですが逆は・・・
3=ファイルへの接続ではなくSQLServer(恐らくExpressエディション)へ接続を行う必要があります。


引用返信 編集キー/
■6733 / inTopicNo.4)  Re[1]: SQLserverでDB
□投稿者/ はつね (237回)-(2007/08/22(Wed) 23:10:02)
No6706 (TASHIRO さん) に返信
> データの中身がまったく同一の、拡張子がmdf,mdbのDBを構築します。

mdfファイルはSQL Serverのファイル、mdbはAccessのファイルだと想定します。
この2つに対して、それぞれに対応したツールでデータの中身を同じ状態にしたとしても、ファイルの中身はまったく異なったものになります。ファイルの中身(構成)がまったくことなったものですから、Visual Studio 2005 (言語はC#と想定)から使う場合もいろいろ異なります。

・System.Data.OleDbを使っていますが、mdfに対してはSystem.Data.SqlClientを使うのが本筋
・System.Data.OleDbを使うのならば、Providerはファイル形式ごとに別物を指定するのが基本
・System.Data.OleDbを使うときは、mdfファイルを直接指定することはできない
・System.Data.SqlClientを使う場合は、mdfファイルを直接指定する事ができる(SQL Serverが動いているマシン上なら)

まあ、とにかく色々誤解されているようですので、SQL Serverへの接続についてMSDN Libraryなどを読まれることをお勧めいたします。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -