2

私は新しい linq to sql 学習者で、データ ビューアー プログラムを作成するのはこれが初めての試みです。アイデアは単純です。データベース内のテーブルの内容を表示できるソフトウェアを作成したいと思います。それでおしまい。

ここですでに初期の問題が発生しており、オンラインで多くの記事や記事を見てきましたが、まだバグを修正できません。

これが私のコードです:

    static void Main(string[] args)
    {
        string cs = "Data Source=localhost;Initial Catalog=somedb;Integrated Security=SSPI;";

        var db = new DataClasses1DataContext(cs);
        db.Connection.Open();

        foreach (var b in db.Mapping.GetTables())
            Console.WriteLine(b.TableName);

        Console.ReadKey(true);
    }

確認しようとすると、db.connection.equals(null);が返さfalseれたので、エラーがまったくないので、データベースに正常に接続したと思いました。しかし、上記のコードは画面に何も出力しません。

ここで何が起こっているのかわかりません。ここで何がうまくいかないのか誰か知っていますか?

4

2 に答える 2

3

では、これらの行のいくつかを見てみましょう。


var db = new DataClasses1DataContext(cs);

これは、コンストラクターに対する完全に正常で適切な呼び出しです。DataContext は IDisposable を実装しているため、実際に使用する場合は using ステートメントの使用を検討してください。

using (var db = new DataClasses1DataContext(cs))
{
  // do stuff with db here
} // when leaving the block, db is disposed - even in the case of an exception.

db.Connection.Open();

これをしないでください。DataContext は、必要に応じて接続を開いたり閉じたりします。


foreach (var b in db.Mapping.GetTables())
  Console.WriteLine(b.TableName); 

うーん、マッピングにテーブルがないのかもしれません。サーバー エクスプローラーからデザイナー画面にテーブルをドラッグしましたか?

ほとんどの人は、マッピングを熟読する代わりにテーブルをクエリします。代わりに次のコードを検討してください。

foreach (var customer in db.Customer.Take(10))
{
  Console.WriteLine(customer.Name); 
}

サーバー エクスプローラーからテーブルをデザイナー画面にドラッグする方法を示すビデオを次に示します。

http://www.youtube.com/watch?v=z9L11qrw9gk

于 2012-07-02T14:08:08.020 に答える
1

接続文字列を以下に変更してみてください

string cs = @"Data Source=.\;Initial Catalog=somedb;Integrated Security=SSPI;";
于 2012-07-02T03:08:46.083 に答える