4

最近、C# (VS2008 を使用) で asp.net のプログラミングを開始し、データベースに接続する最初の Web アプリケーションを作成しました。最初のバージョンは問題なく動作しましたが、変更すると問題が発生します。以下に、状況を説明する例を示します。

1) 正常に動作します。プログラムはデータベースに接続し、関数を使用してデータベースDeleteAllRecords()に対してアクションを実行します。SQL Server Management Studio で接続するデータベースを作成したことに注意してください。

ボタン クリック イベント ハンドラーのコード ビハインド ページ:

    SqlConnection dbConnection = new SqlConnection("Data Source=.\\SQLEXPRESS;Integrated Security=true");
    try
    {
        dbConnection.Open();
        dbConnection.ChangeDatabase("przemek8");
        SqlCommand myCommand = new SqlCommand("DELETE FROM table8", dbConnection);
        myCommand.ExecuteNonQuery();
    }
    catch (SqlException exception)
    {
        Response.Write("<p>Error code " + exception.Number + ": " + exception.Message + "</p>");
    }
    dbConnection.Close();
} 

2) 2 回目は SQL SM Studio で作成したデータベースを使用せず、Visual Studio 自体から新しいデータベース要素を追加しました (Web サイト -> 新しい項目の追加)。そのデータベースにいくつかのフィールドを追加し、動作しているデータベースを表示するように GridView も構成しました。ただし、問題は、Gridview を SQL SM Studio で以前に作成したデータベースに接続したいときに、それが機能しないことです。接続を構成するときに、次のようにデータベース ファイルを選択できません。

このファイルを開く権限がありません。所有者または管理者に連絡して許可を取得してください。

その理由は些細なことかもしれませんが、私にはそれを整理することはできません。

すべてのデータベース ファイルは、SQL SM Studio がディスク C のデフォルトの場所に作成されたことに注意してください。

3) SQL Server によって作成されたデータベースに GridView で接続できない Visual Studio 自体によって追加されたデータベースで作業を続けました。それはGridViewで動作していたので、関数を使用してそれと対話しました(すべてのレコードを削除します)-ポイント1で使用されたものと同じですが、現在はデータベースを使用しています。

  SqlConnection dbConnection = new SqlConnection("Data Source=.\\SQLEXPRESS; AttachDbFilename='D:\\WebSite1\\App_Data\\mydtb.mdf'; Integrated Security=true; User Instance=true");
    try
    {
        dbConnection.Open();
        dbConnection.ChangeDatabase("mydtb");
        SqlCommand myCommand = new SqlCommand("DELETE FROM Table1", dbConnection);
        myCommand.ExecuteNonQuery();
    }
    catch (SqlException exception)
    {
        Response.Write("<p>Error code " + exception.Number + ": " + exception.Message + "</p>");
    }
    dbConnection.Close();

その接続には接続せず、エラー メッセージは次のとおりです。

エラー コード 911: データベース 'mydtb' が存在しません。名前が正しく入力されていることを確認してください。

私はこの分野は初めてですが、この場合 (Visual Studio で作成されたデータベースに接続する) のデータ ソースはData Source=.\\SQLEXPRESS;、SQL Server Management Studio でデータベースが作成されたときと同じである必要がありますか?

助けや提案をありがとう!asp.net興奮初心者:-)

4

2 に答える 2

1

サーバー上のデータベースへの接続に関してあなたが抱えている問題は、

SqlConnection dbConnection = new SqlConnection("Data Source=.\\SQLEXPRESS;Integrated   Security=true");

これを行う最善の方法は、Web.config ファイルに移動してブロックを見つけ、そこにデータベースへの接続を追加することです。

例えば

<add name="ConnectionString" connectionString="Data Source=YOUR SERVER;Initial Catalog=YOUR DATABASE;User ID=YOUR USER ID;Password=YOUR PASSWORD" />

その後、必要なときにいつでもプロジェクト全体で接続文字列を呼び出すことができます。

VS2012に関しても。現時点でその IDE を使用している企業はほとんどないため、ほとんどの場合 VS 2010 を学習したほうがよいでしょうが、VS2008 は現在ではかなり時代遅れであることに同意します。

于 2013-06-07T15:49:07.320 に答える
-1

これが役立つと思います

SqlConnection dbConnection = new SqlConnection("Data
  Source=.\\SQLEXPRESS;Integrated   Security=true; initial
  catalog=database name; uid=servername ; password=yourpassword");
于 2014-12-24T06:34:58.780 に答える