2016-09-16 6 views
0

私は現在、情報をデータベースに保存するコードを書いています。 私は今、それを機能させるための最後のハードルに近づいていると思います。データベースを開くことができませんでした - ユーザのログインに失敗しました

私の問題は、[保存]をクリックすると、ログインで要求されたデータベース[データベースファイルパス]を開くことができないというメッセージボックスが表示されることです。ログインに失敗しました。 「User-PC \ User」のログインに失敗しました。

私は将来的にデータベースのログイン詳細を作成しませんでしたが、プログラムを使用して誰かに情報を記録できるようにしたいと思います。

私はこの問題を解決するためにどこを見なければならないのかはよく分かりませんが、現在SSMSをダウンロードしていますか?

ご協力いただきありがとうございます!私のコードがある

文字列constring =「データソース=(LocalDB)\ MSSQLLocalDB;初期カタログ= C:\ユーザー\ユーザー\ドキュメントプロジェクト\ Visual Studioの2015 \ \ LossApplication \ LossApplication \ LossDB.mdf ;統合セキュリティ=はい; Trusted_Connection = True; ";

string query = "LossDB.LossTable(lossid、Equipment、Event、responsinility、start)の値(@lossid、@equipment、@Cause、@reason、@start)に挿入します。 Integrated Securityを使用して

  SqlConnection conLossDB = new SqlConnection(constring); 
      SqlCommand cmdLossDB = new SqlCommand(query, conLossDB); 
      cmdLossDB.Parameters.AddWithValue("@lossid", textBox1.Text); 
      cmdLossDB.Parameters.AddWithValue("@Equipment", comboBox1.Text); 
      cmdLossDB.Parameters.AddWithValue("@Cause", comboBox2.Text); 
      cmdLossDB.Parameters.AddWithValue("@Reason", comboBox3.Text); 
      cmdLossDB.Parameters.AddWithValue("@start", dateTimePicker1.Text); 
      //Defines which boxes to read in order to input the text from the defined boxes into the corresponding columns 

      SqlDataReader myReader; 
      try 
      { 
       conLossDB.Open(); 
       myReader = cmdLossDB.ExecuteReader(); 
       MessageBox.Show("Loss Entry Saved"); 
       //Opens the database and carries out the defined command outlined in the code above 

       while (myReader.Read()) 
       { 

       } 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show(ex.Message); 
      } 
     } 
+0

のようになり、 'Integrated Security = True'に変更しようとします。または「統合セキュリティ= SSPI」。 – Venky

+0

私は両方を試して、同じエラーボックスを2回取得します... – Loplac92

+0

DBの権限は何ですか?サーバーにはどのようなログインが存在し、それらのログインがデータベースに対してどのレベルのアクセス権を持っていますか? "Everyone"がアプリケーションを介してデータベースに書き込むことを許可するには、アプリケーションが認証に使用するSQLアカウントを設定し、現在のユーザーの情報をdb自体に格納することを検討することをお勧めします。監査証跡)を使用するのではなく、データベースに直接認証するために使用します。 – mikey

答えて

0

は、SQL ServerのWindows認証モードを意味し、データベースへのアクセス権を持っている有効なWindowsユーザーが存在しなければなりません。このモードを使用してコンピュータ上のすべてのユーザーにアクセスする場合は、WindowsのUsersグループ(通常はすべてのユーザーが属します)がデータベースにアクセスできるように構成できます(データベース設定のセキュリティ - >ログインを参照)。

もう1つの方法は、SQLユーザーとユーザーのSQL Server認証モードを作成することです。次に、このユーザーのログインとパスワードを使用して、Windowsユーザーに関係なくデータベースにアクセスします。この場合、接続文字列は

(LocalDB)\MSSQLLocalDB;Initial Catalog=<path>\LossDB.mdf;User ID=<UserLogin>;Password=<***>;Trusted_Connection=True; 
関連する問題

 関連する問題