none
Visual Stadio2017 , C# , SQLServer DB 関連での SqlException エラーを除きたい。 RRS feed

  • 質問

  • OS新規インストール + VS ヴァージョンアップ(2015→2017)後、DB関連のコーディング箇所でエラー発生しており、困っております。

      解決方法、よろしくご教授ください。

      これを記載中、自己解決し記載してあります。同様に困っている人があればと思い投稿します。
      また、最後のところに若干の質問もあるので回答いただけると嬉しいです。
      また、当方、DB関係の知識が甚だ不足しています。記載箇所で、もっといい方法、あるいは勘違い等があれば教えてください。

      1,現在の使用環境
     win10pro64bit , Visualstadio2017 community 

      2,エラー発生前の使用環境
     win10pro64bit , Visualstadio2015 community 

      3. 環境変更の理由およびハード変更状況
        -1.突然、win10が立ち上がらなくなった。
        -2. 調査の結果、Cドライブ ハードの故障
        -3.Cドライブ、SSD新規購入し、Win10proをインストール
        -4.この際と思って、VS2017を導入

      4.エラー発生状況
        -1.debugで実行すると、エラー発生で停止。エラーメッセージは、タイトルのように、SqlException
        -2.エラー発生個所のコーディング周辺を検討すると,DBへの、接続文字列に関係があることがわかった。
        -3.なお、DBへの接続は、MS Linq To SQL により行っていました。

      5.接続文字列
        -1.下記
           Data Source=ASROCK\SQLEXPRESS;Initial Catalog=weekDiskAddress;Integrated Security=True;Encrypt=False;TrustServerCertificate=False
        -2.Data Source のところが、ハードが変わっているので、これがダメと推定
        -3.接続文字列のところをダブルクリックすると、接続のプロパティの画面が立ち上がる。

      6. 接続のプロパティの画面その1
        -1.上から2番目のサーバー名に、ASROCK\SQLEXPRESS が入っているので、これを下記にて修正
             (localdb)\MSSQLLocalDB
           なお、データベースへの接続のところで、カタログ値の weekDiskAddress が表示されているので
           データベース名の選択または入力のラジオボタンにチェックが入っているので、そのまま、テスト接続 をクリック

        -2.エラー表示
    ---------------------------
    Microsoft Visual Studio
    ---------------------------
    指定されたデータベースが、存在しないかまたは指定されたユーザーに対して表示されないため、この接続をテストすることができません。
    ---------------------------
    OK   
    ---------------------------

       -3.ここで、あきらめようとしたが、試しに下記の7をやってみた

      7. 接続のプロパティの画面その2
        -1.サーバー名 (localdb)\MSSQLLocalDB のままとして
           今度は、データベースファイルのアタッチをラジオボタンにて選択
        -2,参照のところで、DBがある下記を指定
           C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\DATA\weekDiskAddress.mdf
           (なお、これらのパスは、SSD損傷前のものをバックアップしてあったので、パスも合わせそのまま復元したものです)
        -3.論理名は空欄のまま、にてテスト接続をクリック
        -4.エラー表示
    ---------------------------
    Microsoft Visual Studio
    ---------------------------
    このデータベース ファイルには、SQL Server の現在のインスタンスとの互換性がありません。
    この問題を解決するには、新しいデータ接続を作成してデータベース ファイルをアップグレードするか、このデータベース ファイルへの既存の接続を変更する必要があります。
    詳細については、https://go.microsoft.com/fwlink/?LinkId=235986 を参照してください
    ---------------------------
    OK   
    ---------------------------

      7. 接続のプロパティの画面その3
        -1. テスト接続の横にあるOKボタンを押すと下記のメッセージが出る
    ---------------------------
    Microsoft Visual Studio
    ---------------------------
    接続しようとしているデータベース ファイルは、SQL Server の現在のインスタンスと互換性がありません。
    続行するには、このデータベース ファイルをアップグレードする必要があります。アップグレードすると、旧バージョンの SQL Server との互換性はなくなります。
    このデータベース ファイルをアップグレードしない場合は、https://go.microsoft.com/fwlink/?LinkId=235986 で詳細を参照してください。
    データベースを今すぐアップグレードしますか?
    ---------------------------
    はい(Y)   いいえ(N)   
    ---------------------------
        -2.はい(Y)ボタンを押す
    ---------------------------
    Microsoft Visual Studio
    ---------------------------
    Unable to open the physical file "C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\DATA\weekDiskunionAddress_log.ldf". Operating system error 5: "5(アクセスが拒否されました。)".
    Could not open new database 'C:\PROGRAM FILES\MICROSOFT SQL SERVER\MSSQL12.SQLEXPRESS\MSSQL\DATA\WEEKDISKADDRESS.MDF'. CREATE DATABASE is aborted. An attempt to attach an auto-named database for file C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\DATA\weekDiskAddress.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.
    File activation failure. The physical file name "C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\DATA\weekDiskunionAddress_log.ldf" may be incorrect.
    The log cannot be rebuilt because there were open transactions/users when the database was shutdown, no checkpoint occurred to the database, or the database was read-only. This error could occur if the transaction log file was manually deleted or lost due to a hardware or environment failure.
    ---------------------------
    OK   
    ---------------------------

      8. 接続のプロパティの画面その4
       -1.上記エラーを、google翻訳で訳して、今回のケースに関係ありそうなところが下記
    Server¥MSSQL12.SQLEXPRESS¥MSSQL¥DATA¥weekDiskAddress_log.ldf"を開くことができません。オペレーティングシステムエラー5: "5(アクセスが拒否されました。)"   

       -2.エクスプローラで、weekDiskAddress_log.ldf をプロパティでセキュリティのところを調べると
          操作者(私、個人専用機)であるが、私のユーザー名としては、名前も登録されていなかったので、新たに登録し、権限としては、フルコントロールで登録

      9.再度、debugでプログラム実行 、
        -1. SqlException エラー発生せず、正常起動になった。
        -2.やれやれです。ここまで2日ほどかかってしまいました。

     10.反省,雑感
        -1.今回手順のソリューションエクスプローラから、dbmlのところを右クリックし接続文字列からDBのV.UPまで進めることが出来るとは全くわからなかった。
            しかし、今となってはVSすごいなという感じです。
        -2. SQL Server オブジェクトエクスプローラ上に、Databaseを登録しようとして試行錯誤していたので時間がかかってしまった。 
            特に、SQLEXPRESSをサーバー名として登録しようとあれこれしたがどうしてもだめ (Localdb)\SQLEXPRESS 等
            そもそもが、VS2018では、これは登録できないのかな?
        -3. 上記と並行して、サーバーエクスプローラー上でも、上記と同様に サーバー名 \SQLEXPRESS を登録しようとしたがこれもだめだった
        -4. VS2018では、標準では、Link To SQL が、ソリューションからの新規追加でメニューに出なくなった。ネットで探して、この Link To SQL をメニューに出せるようになったが、Link To SQL は推奨しないことなのか。これにかわるものとしては、VS2015には確かなかったような、ADO.NET Endity Data Modelなのか?
            私は、この Link To SQL を多用していたので、興味がある。
        -5. この症状3日前発生しており、その時も投稿したのですが、文章長いせいもあり、回答0 表示数も29しかないので削除します。(削除できるようだったら)
         ただ、不思議なのは、昨日までは、フォーラム Visual C# の一覧に表示されていなかったのですが、こんなことありえるのでしょうか

       以上
    2018年6月22日 2:59

回答

  • まず、過去にMSDNフォーラムで表示の更新がうまくいかず、特定の質問のスレッドが表示されないということが何度かありました。おそらく何らかの障害が発生していたのだと思われます。

    また、根本的にLocalDBとSQL Server Expressとは別物になります。接続文字列も異なります。ご質問の内容を読んでいると、混乱されているように思いました。
    (Localdb)\SQLEXPRESS
    ではなくて、
    (Local)\SQLEXPRESS
    ですね。もしくは、
    .
    \SQLEXPRESS

    #Windows 10が突然起動しなくなったのは4月の大型アップデートが原因かもしれませんね。私のところで昨夜、見慣れた(というのもなんですが・・・)真っ黒なデスクトップにゴミ箱しかない状態で何もできなくなってしまい、システムの復元で大型アップデートが当たる前に戻しました。Windows 10が立ち上がらなくなった際に、「unknown hard error」のようなメッセージが必ずと言っていいほど表示されますが、大抵の場合、ハードに問題があるわけではないようです。


    ★良い回答には質問者は回答済みマークを、閲覧者は投票を!

    • 回答としてマーク エンバー 2018年6月22日 11:11
    2018年6月22日 7:59
    モデレータ
  • >そもそもが、なぜ サーバーエクスプローラー と SQL Server オブジェクトエクスプローラがあるのかわかっていません。

    SQL Server オブジェクトエクスプローラは、後に追加されたもので、SQL Server Management Studioに似たインターフェースを持っていますので、SQL Server Management StudioのようなものがVisual Studioで使えるようになったということだと思います。
    私は
    SQL Server Management Studioを使いますので、SQL Server オブジェクトエクスプローラに関してはあまり詳しくありません。

    >次に、SQL Server オブジェクト エクスプローラ で、SQL Serverの追加で サーバー名に  、(Local)\SQLEXPRESS
    と入れて、接続 ボタンを押すと、やはり、下記のメッセージが出ます。

    SQL Server Expressのインスタンスが存在し、実行中であることを確認してみて下さい。

    コンピュータの管理 → サービスとアプリケーション → SQL Sever構成マネージャー → SQL Serverのサービス

    で、確認することができます。

    >ところで、SQLEXPRESS は、別に VS2017 で使用しても構わないのでしょうか

    もちろん、構いません。


    ★良い回答には質問者は回答済みマークを、閲覧者は投票を!

    • 回答としてマーク エンバー 2018年6月22日 11:10
    2018年6月22日 9:01
    モデレータ
  • > また、(localdb)\MSSQLLocalDB は、上記でいうと、1番になるのでしょうか

    違います。1 でも 2 でも 3 でもなく、LocalDB はそれらとは別物です。

    SQL Server Express と LocalDB の両方が動いていれば(あくまで動いていればです)、タスクマネージャーで見ると以下の画像のようになっていると思います。上が SQL Server で下が LocalDB です。

    質問者さんの環境では SQL Server は動いてないようなので上はタスクマネージャーには出てこないと思います。

    LocalDB の方は多分 Visual Studio をインストールした際一緒にインストールされたと思いますが、であれば、Visual Studio か SSMS を接続すれば質問者さんが PC にログインしたユーザーアカウントで動くと思いますので試してみてください。

    VS2015 から接続

    SSMS から接続

    質問者さんの環境で SQL Server Express が動いてない理由は分かりません。どうしても SQL Server Express でなければならないという理由がなければ、SQL Server Express が動かない理由は後で追及するとして、開発にはとりあえず LocalDB を使っておけばいいと思いますが・・・

    • 回答としてマーク エンバー 2018年6月24日 9:39
    2018年6月24日 2:58

すべての返信

  • まず、過去にMSDNフォーラムで表示の更新がうまくいかず、特定の質問のスレッドが表示されないということが何度かありました。おそらく何らかの障害が発生していたのだと思われます。

    また、根本的にLocalDBとSQL Server Expressとは別物になります。接続文字列も異なります。ご質問の内容を読んでいると、混乱されているように思いました。
    (Localdb)\SQLEXPRESS
    ではなくて、
    (Local)\SQLEXPRESS
    ですね。もしくは、
    .
    \SQLEXPRESS

    #Windows 10が突然起動しなくなったのは4月の大型アップデートが原因かもしれませんね。私のところで昨夜、見慣れた(というのもなんですが・・・)真っ黒なデスクトップにゴミ箱しかない状態で何もできなくなってしまい、システムの復元で大型アップデートが当たる前に戻しました。Windows 10が立ち上がらなくなった際に、「unknown hard error」のようなメッセージが必ずと言っていいほど表示されますが、大抵の場合、ハードに問題があるわけではないようです。


    ★良い回答には質問者は回答済みマークを、閲覧者は投票を!

    • 回答としてマーク エンバー 2018年6月22日 11:11
    2018年6月22日 7:59
    モデレータ
  • 早速の返信ありがとうございます。

    確かに、LocalDB と SQL Server Express と混同を通り越してぐちゃぐちゃです。

    そもそもが、なぜ サーバーエクスプローラー と SQL Server オブジェクトエクスプローラがあるのかわかっていません。

    で、サーバーの追加をどちらかでやるのさえも、はっきりわからなかったのですが、

    サーバーエクスプローラでサーバーの追加で、コンピュータのところを、(Local)\SQLEXPRESS 

    と入れて、OKボタンを押すと、下記のメッセージが出ます。

          ---------------------------
          サーバー エクスプローラー
         ---------------------------
         サーバー名 "(Local)\SQLEXPRESS" が見つかりませんでした。サーバー名が正しいかどうか確認してください。
          ---------------------------
          OK   
          ---------------------------

    次に、SQL Server オブジェクト エクスプローラ で、SQL Serverの追加で サーバー名に  、(Local)\SQLEXPRESS

    と入れて、接続 ボタンを押すと、やはり、下記のメッセージが出ます。

    タイトル:エラー
    ------------------------------
    SQL Server への接続を確立しているときにネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないかアクセスできません。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。 (provider: SQL Network Interfaces, error: 26 - 指定されたサーバーまたはインスタンスの位置を特定しているときにエラーが発生しました) (Microsoft SQL Server、エラー: -1)

    ヘルプを表示するには次をクリックしてください: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&EvtSrc=MSSQLServer&EvtID=-1&LinkId=20476
    ------------------------------
    ボタン:
    OK
    ------------------------------

    でした。

    ところで、SQLEXPRESS は、別に VS2017 で使用しても構わないのでしょうか

    ----------------------------

    Windows 10が立ち上がらなくなった際に、「unknown hard error」のような、とありますが、

    私の症状もこれでした。BIOSのあと、OSが全く立ち上がらない症状でした。

    わたしは、システムのバックアップ をとってないのと、単純に画面を信じてSSDの故障だと思い、SSDの新規購入からのセットアップになってしまいました。

    うーん、ソフトだったのか。道理で、新規OSで取り外したSSDを見てもfolder すべて見えるので、本当にSSDが悪かったのかと疑問に思っていました。

    ----------------------------

    ところで、ここで、自己解決したと書いたのですが、別の自作ソフトでも、このSQLEXPRESS を使った別のDBがあり、あのあと、気楽に投降した内容でやれば、OKだと、タカをくくって作業したのですが、またもや、sqlexception エラーで立ち往生しています。現在、悪戦苦闘中です

    2018年6月22日 8:35
  • >そもそもが、なぜ サーバーエクスプローラー と SQL Server オブジェクトエクスプローラがあるのかわかっていません。

    SQL Server オブジェクトエクスプローラは、後に追加されたもので、SQL Server Management Studioに似たインターフェースを持っていますので、SQL Server Management StudioのようなものがVisual Studioで使えるようになったということだと思います。
    私は
    SQL Server Management Studioを使いますので、SQL Server オブジェクトエクスプローラに関してはあまり詳しくありません。

    >次に、SQL Server オブジェクト エクスプローラ で、SQL Serverの追加で サーバー名に  、(Local)\SQLEXPRESS
    と入れて、接続 ボタンを押すと、やはり、下記のメッセージが出ます。

    SQL Server Expressのインスタンスが存在し、実行中であることを確認してみて下さい。

    コンピュータの管理 → サービスとアプリケーション → SQL Sever構成マネージャー → SQL Serverのサービス

    で、確認することができます。

    >ところで、SQLEXPRESS は、別に VS2017 で使用しても構わないのでしょうか

    もちろん、構いません。


    ★良い回答には質問者は回答済みマークを、閲覧者は投票を!

    • 回答としてマーク エンバー 2018年6月22日 11:10
    2018年6月22日 9:01
    モデレータ
  • リターンありがとうございます。

    SQL Serverのサービス の中に以下の3つがありました

     1.SQL Server Browser

      2.SQL Server (SQLEXPRESS)

      3.SQL Server エージェント(SQLEXPESS)

    初めて、ここを見ました。

      状態は3つとも、停止の状態でした。

    ためしに2番の SQL SERVER(SQLEXPRESS) の開始を押しましたが、

    20秒ほどで下記のメッセージが出て、停止しました。

    ---------------------------
    SQL Server 構成マネージャー
    ---------------------------
    要求が失敗したか、サービスが適切な時間内に応答しませんでした。詳細については、イベント ログまたは他の適切なエラー ログを参照してください。
    ---------------------------
    OK   
    ---------------------------

    ところで、開始モードは、自動となっています。 propertyを覗いてみたのですが、何をもって開始させるのかわかりませんでした。

    また、(localdb)\MSSQLLocalDB は、上記でいうと、1番になるのでしょうか

    Propertyでログオン タブ、 ビルトイン アカウント に ローカル サービス となっています。

    2018年6月22日 11:26
  • > また、(localdb)\MSSQLLocalDB は、上記でいうと、1番になるのでしょうか

    違います。1 でも 2 でも 3 でもなく、LocalDB はそれらとは別物です。

    SQL Server Express と LocalDB の両方が動いていれば(あくまで動いていればです)、タスクマネージャーで見ると以下の画像のようになっていると思います。上が SQL Server で下が LocalDB です。

    質問者さんの環境では SQL Server は動いてないようなので上はタスクマネージャーには出てこないと思います。

    LocalDB の方は多分 Visual Studio をインストールした際一緒にインストールされたと思いますが、であれば、Visual Studio か SSMS を接続すれば質問者さんが PC にログインしたユーザーアカウントで動くと思いますので試してみてください。

    VS2015 から接続

    SSMS から接続

    質問者さんの環境で SQL Server Express が動いてない理由は分かりません。どうしても SQL Server Express でなければならないという理由がなければ、SQL Server Express が動かない理由は後で追及するとして、開発にはとりあえず LocalDB を使っておけばいいと思いますが・・・

    • 回答としてマーク エンバー 2018年6月24日 9:39
    2018年6月24日 2:58
  • SurferOnWww 様 、図入りでの詳しい説明ありがとうございます。

    >SQL Server Express と LocalDB の両方が動いていれば(あくまで動いていればです)、タスクマネージャーで見ると以下の画像のようになっていると思います。上が SQL Server で下が LocalDB です。

    1.2つとも、表示されていました。

    2.VS2017のときの接続の追加はこうなっています。(サーバー エクスプローラ)

      VS2015のように、データベースへの接続が出てきません。

      一応、これで接続はできています。ただトラブル時、あれこれやっているときに、テスト接続で、何回もエラーではねられました。

    3.SQL Server Express の件、こちらもそれほど、必要ではなく、従来のソフトではこちらで動いていたので、こちらにしようと思っていたものですから。 いまは、MSSQLLocalDB でも、あらかた動くようになってきたので今後はこちらに移行していくつもりです。 (まだ、格闘中ですが…)

    4.ところで、VSでデータベースを追加するとき、サーバー エクスプローラでも、SQL Serever オブジェクト エクスプローラ でもできるようですが、どちらでやるべきなのでしょうか。

        

    2018年6月24日 9:39
  •  1.SQL Server Browser

      2.SQL Server (SQLEXPRESS)

      3.SQL Server エージェント(SQLEXPESS)

    もう調べられているかもしれませんが、SQL Server Browserは他のコンピューターからそのSQL Serverに接続しに来たときに自動的にポートを解決するために存在します。そのSQL Serverのポートが固定であればSQL Server Browserは必要ありませんが、自動の場合、コンピューターが再起動する毎にポートが変わるため、それを解決するためにSQL Server Browserが存在します。SQL Server Browserのおかげで、クライアントはSQL Serverのポートを知らなくても接続できるようになります。他のコンピューターからの接続が無い、もしくは固定ポートで運用時には、SQL Server Browserは必要ありません。

    2.は良いとして、3.のSQL Serverエージェントは、一般的にバックアップなどのジョブを定期的に行うような場合に使用されます。ただ、残念ながらExperss版の場合は定期的にジョブを実行する機能がありませんので、通常は停止の状態でかまいません。

    ---------------------------

    SQL Server 構成マネージャー
    ---------------------------
    要求が失敗したか、サービスが適切な時間内に応答しませんでした。詳細については、イベント ログまたは他の適切なエラー ログを参照してください。
    ---------------------------
    OK   
    ---------------------------

    SQL Server Expressは使わない方向ということなのでもう良いかもしれませんが、通常は動作しますので、もし動かす必要があるのであれば、以下を参考にしてエラーログに何か記載されていないかチェックしてみて下さい。
    以下はSQL Serve Management Studioに関する記載ですが、SQL Sever オブジェクトエクスプローラーでも当てはまります。

    SQL Server エラー ログの表示 (SQL Server Management Studio)
    https://docs.microsoft.com/ja-jp/sql/relational-databases/performance/view-the-sql-server-error-log-sql-server-management-studio?view=sql-server-2017

    ところで、開始モードは、自動となっています。 propertyを覗いてみたのですが、何をもって開始させるのかわかりませんでした。

    自動となっていれば、コンピューターの起動と共に実行が開始されます。
    管理ツール → サービス
    で、SQL Server(SQLEXPRSS)のプロパティでも同様に確認できます。ちなみに、サービスの画面から開始すると、構成マネージャーからの開始は失敗する場合でも、なぜか開始できる場合が経験上ありました。


    ★良い回答には質問者は回答済みマークを、閲覧者は投票を!

    2018年6月25日 1:30
    モデレータ
  • > 1.2つとも、表示されていました。

    それは変ですね。

    先の質問者さんのレスによると、SQL Server 構成マネージャの[SQL Server のサービス]を見て、[SQL Server (SQLEXPRESS)]は[停止]状態だったんですよね? だとすると、タスクマネージャーには出てこないはずです。一応自分の環境で確認しました。

    SQL Server 構成マネージャで[開始]すると、それに表示されている[プロセス ID]と[ログオン]と同じものが,、タスクマネージャーの[PID]と[ユーザー名]に表示されます。

    またまた何をしているのか分からなくなりそうですので、「2つとも、表示されていました」というのは何なのかきちんと調べた方がよさそうです。

    > 2.VS2017のときの接続の追加はこうなっています。(サーバー エクスプローラ)

    それは以下の記事の「自動インスタンスへの接続」のセクションに書いてある「ファイル名を使用して特定のデータベースに接続するには、 "Server=(LocalDB)\MSSQLLocalDB; Integrated Security=true ;AttachDbFileName=D:\Data\MyDB1.mdf" のような接続文字列を使用して接続します」の接続方法でしょう。

    私のレスの画像で紹介したのは「接続文字列 "Server=(localdb)\MSSQLLocalDB;Integrated Security=true" を使用して、現在のユーザーが所有する自動インスタンスに接続することです」の方です。

    SQL Server 2016 Express LocalDB
    https://docs.microsoft.com/ja-jp/sql/database-engine/configure-windows/sql-server-2016-express-localdb?view=sql-server-2017

    > 3.SQL Server Express の件、こちらもそれほど、必要ではなく

    前の私のレスで「開発にはとりあえず LocalDB を使っておけばいい」と言っておきながら何ですが、SQL Server Express を使えるのであれば、制約が多い LocalDB を使う理由はないと個人的には思います。

    時間が取れたら SQL Server Express の問題を解決して、そちらを使うことをお勧めします。


    > 4.ところで、VSでデータベースを追加するとき、サーバー エクスプローラでも、SQL Serever オブジェクト エクスプローラ でもできるようですが、どちらでやるべきなのでしょうか。

    好みの問題だと思います。個人的には SQL Server Object Exploler の方が使いやすいと思いますが。

    ただ、スクリプトを走らせてデーターベースを作るような場合は SQL Server Management Studio を使うのががよさそうです。

    例えば、以下の記事のようにすれば、Microsoft のチュートリアルによく出てくるサンプルデータベース Northwind, Pub も LocalDB で使えるようにできます。

    LocalDB で Northwind と Pubs を利用
    http://surferonwww.info/BlogEngine/post/2017/05/16/use-northwind-and-pubs-on-localdb-2016.aspx

    2018年6月25日 2:19
  • 1. SQL Server サービス

       図のように3つとも停止しています。

    2.タスクマネージャー

        sqlserver.exe  違うIDで二つ走っています。ログオンは、消してありますが、同じ私のものになっています。

      

    2.接続文字列の件

         SurferOnWww さんが記載されていた方法を、わたしもやったようです。

        不思議なのは、

          1.ここでは、接続文字列の (LocalDB)\MSSQLLocalDB になっているのですが、

          2.C#の方の文字列は、app.configでみると、これとおなじものが追加されている

          3.しかし、C#のコンパイルでは、追加した文字列が採用されず、従来の接続文字列(EXPressの方を)を使っている

          4.このため、sqlexception になったようです。

          5.接続文字列を、手打ちで、 EXPressのところを、(LocalDB)\MSSQLLocalDB に変更したところ

           6、sqlexception から解放されました。

    3.SQL Server Express  の件、ご忠告ありがとうございます。了解しました。落ち着きましたらこちらも組み込めるように勉強してみます。

    4.すいません。 私は、「サーバーエクスプローラ」 と 「SQL Serever オブジェクト エクスプローラ」と書いたのですが、

         SurferOnWww さんは、「SQL Server Management Studio」に言及されています。

        「サーバーエクスプローラ」 と  SQL Server Management Studio」 は同義語と考えていいのでしょうか。

       ちなみに、わたしの言っている   「サーバーエクスプローラ」 とは、 VS の 中から扱えるものです。

    2018年6月25日 6:30
  • > 1. SQL Server サービス   図のように3つとも停止しています。

    やっぱりなんか変ですね。

    SQL Server Express をデフォルトでインストールすると、SQLEXPRESS という名前の「名前付きインスタンス」になって、 SQL Server (SQLEXPRESS) のログオンは NETWORK SERVICE(正確には NT AUTORITY\NETWORK SERVICE)になるはずです。

    NT SERVICE\MSSQL$SQLEXPRESS(既定のインスタンスの場合は NT SERVICE\MSSQLSERVER)というのはサービス名というものですが、質問者さんのケースでなぜそれが SQL Server 構成マネージャーのログオンに表示されるのかは分かりません。(インストールするときに何かデフォルトと違う設定をした???)


    > 2.タスクマネージャー  sqlserver.exe  違うIDで二つ走っています。ログオンは、消してありますが、同じ私のものになっています。

    SQL Server が停止しているなら、タスクマネージャーに表示されているものは SQL Server ではありません。

    何だか不明ですが、ログオンが質問者さんの Windows アカウントになっているのであれば両方とも LocalDB かもしれません。

    右クリックでプロパティを見て場所を調べると何だか分かるかもしれません。


    > 4.すいません。 私は、「サーバーエクスプローラ」 と 「SQL Serever オブジェクト エクスプローラ」と書いたのですが、SurferOnWww さんは、「SQL Server Management Studio」に言及されています。

    違います。レスをよ~く読んでください。

    2018年6月25日 8:15