1

私は初心者のプログラマーで、sqldatasource に問題があります。私のプロジェクトには、「KFS」というデータベースがあります。gridview のデータソースとして gridview と sqldatasource があります。私はそのような接続文字列を持っています:

"KFSConnectionString" 
connectionString="Data Source=.\sqlexpress;Initial Catalog=KFS;Integrated Security=True"
providerName="System.Data.SqlClient"

これは VS2008 で機能していますが、これを自分の Web サイトにロードすると機能しません。接続文字列を変更するにはどうすればよいですか?

4

4 に答える 4

1

接続文字列のデータ ソース プロパティの '.\sqlexpress' は、同じマシン上の SQL Server に接続するようにアプリケーションに指示しています。Web サーバーが別のコンピューターにある場合は、「.」を置き換える必要があります。あなたのコンピュータの名前で。\sqlexpress 部分は、変更する必要のない SQL Server インスタンスの名前です。

また、SQL Server でリモート接続が許可されていることも確認する必要があります。デフォルトでは、そうではないと思います。SQL Server Surface Area Configuration ツールを使用して、リモート接続のアクセス許可を変更できます。[スタート] メニューの [Microsoft SQL Server 200x] --> [構成ツール] フォルダに SQL Server をインストールしたときに、SAC ツールがインストールされているはずです。サービスと接続の Surface Area Configuration を見て、そこで Remote Connections 項目を見つけます。

于 2009-09-01T02:17:08.933 に答える
1

Visual Studio で実行すると、ローカル システム上のデータベースに接続できます。Web サイトを Web サーバーに発行する場合、接続先のローカル データベースはありません。データベースを SQL サーバーに配置し (または App_Data でローカル MDF ファイルを使用)、それに応じて接続文字列を調整する必要があります。

アプリケーション内のローカル ファイルへの接続は、次のようになります。

Server=.\SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf;
    Database=dbname;Trusted_Connection=Yes;

さまざまな接続文字列オプションについては、このリファレンスを参照してください。

ASP.NET および VS2005 でデータにアクセスする方法に関するリファレンスを次に示します。少なくとも接続文字列に関しては、これはまだ適用されるべきだと思います。

于 2009-09-01T02:16:42.070 に答える
0

ローカルで動作するはずですが、サーバーにアップロードするときは、サーバーの IP アドレスを投稿する必要があります。

于 2010-02-13T09:04:04.333 に答える
0

「データ ソース」または「統合セキュリティ」のいずれか (または両方) が間違っていると思います。接続文字列は、データベースが Web サーバーと同じサーバー上にあり ("." で示される)、データベースが名前付きインスタンス (.\"express" で示される) を使用する MSSQL Express であることを示しています。 " は、Web サーバーの aspx ページを実行しているアカウントを使用して、データベースへのアクセスを試行する必要があることを意味します。私の経験では、これらのいずれもサードパーティのホスティング サイトにはありません。ほとんどの場合、データベースは別のサーバー上にあり、特定の資格情報 (ユーザー名/パスワード) を持っています。ホスティング プロバイダーのサポートに電話するか、ホスティング プロバイダーから受け取ったアクティベーション メールを調べることをお勧めします。

繰り返しになりますが、(vs2008 のビルトイン サーバーではなく) 開発ボックス上の IIS を意味する "Web サイト" について話している可能性があり、これを入力するのに数分無駄になった可能性があります。:D

-オイシン

于 2009-09-01T02:18:38.650 に答える