誰かが私の接続文字列を修正するのを手伝ってくれますか? 私は MS SQL Management Studio を使用するまったくの初心者ですが、経験豊富な C# プログラマーです。PC のローカル データベースに接続する方法を見つけようとしています。今日、SQL Server 2012 Express をインストールし、1 行のデータを含むテーブルを作成しました。C# プログラムからそのテーブルにアクセスしようとしています。ストアド プロシージャ (パラメーターなし) を呼び出す方法を探していましたが、すべて正しく実行されているように見えますが、「ストアド プロシージャ 'GetCustomers' が見つかりませんでした」という例外エラーが表示されます。また、プロシージャ名を「dbo.GetCustomers」、「SqlTest.dbo.GetCustomers」、「SqlTest.GetCustomers」に変更しようとしましたが、何も機能していないようです。明らかに、データベースに正しく接続していません。私' これに4時間取り組んできたので、立ち止まって助けを求める時が来ました. 必要なのは、適切な接続文字列とプロシージャの適切な構文だけだと思います。
Connect c = new Connect();
if(c.MakeConnection())
{
try
{
DataSet data = new DataSet();
SqlDataAdapter adaptor = new SqlDataAdapter();
//changed to use stored procedure
adaptor.SelectCommand = new SqlCommand("GetCustomers", c.MyConnect);
adaptor.SelectCommand.CommandType = CommandType.StoredProcedure;
//adaptor.SelectCommand.ExecuteNonQuery();//this throws an exception.
adaptor.Fill(data);//this throws an exception.
}
catch (Exception e)
{
Logger.WriteMessage(e.Message);
}
finally
{
c.CloseConnection();
}
私の接続クラスには次のものが含まれています。
string connection = Properties.Settings.Default.DatabaseConnectString;
sqlConnection = new SqlConnection(connection);
sqlConnection.Open();
私が試した接続文字列は、OKに接続しているようです:
Server=(localdb)\v11.0;Trusted_Connection=Yes;
Server=(localdb)\v11.0;Integrated Security=true;
私のデータベース名は SqlTest です。接続文字列でいくつかのバリエーションを試しましたが、ほとんどの場合、ログオン失敗例外エラーがスローされます。Windows ユーザー ID にデータベースの管理者権限があることを確認しました。
私が試した接続文字列は、ログオンエラーを引き起こします:
Server=(localdb)\v11.0;Initial Catalog=SqlTest;User ID=Raphael\couchpotato;Integrated Security=SSPI;Trusted_Connection=Yes;
Server=(localdb)\v11.0;Initial Catalog=dbo;User ID=Raphael\couchpotato;Integrated Security=SSPI;Trusted_Connection=Yes;
Server=(localdb)\v11.0;Database=SqlTest;Trusted_Connection=Yes;
Server=(localdb)\v11.0;Database=SqlTest;Integrated Security=true;