DOBON.NETプログラミング道掲示板

■ 「新規作成」から投稿できます。
■ マルチポストされた投稿を見つけたときは、その投稿に返信することによりご報告ください。その際は匿名で投稿し、マルチポストされている場所を併記してください。
■ スパム対策のため、メールアドレスの先頭に"_"という文字が付加されています。
RSS 2.0 RSS 2.0 | RSS 0.91 | 携帯電話用 | 自分専用のアイコンを使用するには | 掲示板への要望 | 管理人に連絡 | お気楽掲示板
■ 24時間以内に作成されたスレッドは New で表示されます。
■ 24時間以内に更新されたスレッドは UpDate で表示されます。

記事リスト ( )内の数字はレス数
UpDateVB.netにおける固定長出力方法(3) | NomalDataObjectの使いまわし(5) | NomalVB.NETからRDゲートウェイを利用したリモートデスクトップ接続(3) | NomalLIstview のDataSource(2) | NomalClassの作り方(2) | NomalOpenFileDialogの初期ファイル名の表示が変(1) | NomalVB.NETのVBA化(2) | Nomal改行のコード(7) | NomalGoogle翻訳の結果の取得(2) | NomalStopwatchクラスのElapsedMillisecondsの挙動(2) | Nomal.net Chartで二重ドーナツグラフの作り方(3) | Nomalexeをショートカットから起動した場合のエラー(2) | Nomalデスクトップ と Desktop(6) | Nomalデザイナのプロパティウィンドウで静的プロパティを選択したい(3) | NomalPHPでシリアライズした、データをデシリアライズしたい(4) | Nomal二次元配列 インデックスが配列の境界外(2) | NomalVB.netで作成したexeのNgenによる弊害(1) | NomalDrawBezierの使い方について(7) | Nomalメジャーバージョンの異なるLog4netライブラリを参照したい(4) | NomalVB6→2005変換時のDeclare宣言のマーシャリング属性(8) | NomalGROUPBOXの複製について(vb.net)(1) | NomalActiveReports 3.0からActiveReports 7.0へのァイルコンバータについて(4) | NomalAccess OLEでExecuteNonQuery(3) | NomalKeyDownでの右コントロールキーイベント(2) | NomalExcel複数シートの印刷順序(3) | NomalWMPへno(3) | NomalDataGridViewの行番号(7) | Nomalapp.config定義によるネットワークトレースログの世代管理(2) | Nomalrelease/debugのどちらで作成されたものかを判断する方法(2) | NomalC#コンソールアプリでタイピング練習ソフト作成(3) | Nomal自分自身を呼び出すのはOKですか(1) | NomalWebBrowser Control foreachで値が消える(2) | NomalDeclare宣言するdllと参照追加をするdllの区別(4) | NomalTaskクラスを.NET Framework 2.0で実現させる方法(2) | NomalVS2017で作成されたDLLをVS2005で作成されたAPで使用する方法(4) | NomalWebBrowser Controlを使って、任意の値を取得(5) | NomalEditボックスに簡体字をセットする方法(2) | NomalList型でエラーが起きてしまい・・・(1) | Nomalフォルダ内の全ての容量を取得したい(4) | NomalWebClientが上手く動かない(2) | Nomal共変性と反変性ってこういうこと?(4) | Nomalモードレスフォーム Warning IDE0067を回避したい(7) | NomalLINQの拡張メソッドの定義(1) | Nomalこんな演算子初めて見ました。(5) | Nomalプロセスからウインドウを取得(4) | Nomalフォーム外のカーソルの変更(2) | NomalLINQのメソッド構文の書き方(3) | NomalVB.NETでCSVを読み込む際にSQL文を使いたい(3) | NomalRichTextBoxで入力文字の自動折り返しを止めたい(2) | NomalRichTextBoxで入力文字の自動折り返しを止めたい(5) | Nomalラムダ式の勉強中(2) | NomalWebClientで、短期間にDownloadStringAsyncを実行したい(2) | Nomalvb.net+SQLiteで複数データベースファイルへのトランザクション方法(3) | NomalNewの使い方間違ってますか?(4) | Nomalジェネリック型インターフェースを使った変数を扱いたい(3) | NomalC#をVBに変換(2) | NomalProcess.WaitForExitで正常に動作しない?(3) | NomalCatch時のex.StackTraceの情報(3) | Nomalユーザーコントロール内のテキストボックスのmodifiedプロパティ(4) | NomalPictureBox.Locationのキャンセル(3) | NomalJOIN操作の構文エラー(4) | NomalVisualStudioでマクロ(3) | NomalVisualStudioでExcelのVSTO開発(3) | NomalOracleDataAccess を参照したプログラムでデバッグモードが機能しなくなる(3) | NomalIE11では表示されるが、.netのWebBrowserでは、表示されないHPを表示する方法(7) | NomalマウスのないOSでマウスカーソルの表示(2) | NomalRDP接続でのネットワーク帯域制限(0) | NomalFILE.COPYでIOExceptionエラーが出る(11) | NomalToolStripMenuItemにShortcutKeysを指定した際の、元のコントロールを取得する方法(2) | Nomal動的にプロパティや変数の値の取得(4) | NomalVB6 ほかのアプリケーションを起動し そのアプリケーションは終了させる方法(4) | NomalMouseEventArgsのカレント座標(2) | Nomalリッチテキストボックスでの字間の調整(2) | NomalDrawImage でメモリ不足エラー(3) | Nomal必須コンポーネントの一覧に追加したい(0) | NomalCode128でバーコードが読み取れない(8) | NomalあるWindows10PCでビルドしたEXEがW8.1以下で実行エラー(5) | NomalApp.configのMy.Application.Log設定で使用できない属性が出る(0) | NomalVC++ → VB.Netに変換時に文法エラー(2) | Nomalvb2010を使用したmicrosoft Wordの任意の行の削除(0) | NomalVb.netからAccessへの接続について(3) | NomalSQL-Server Compact 4.0が表示されない(2) | Nomalバーコードの数字を非表示にしたい(2) | Nomal令和の日付への対応(3) | Nomalスクロールバーが出た時に高さを変えたい(4) | Nomal自作したアプリの発行元を明記したい(2) | NomalHTTP 417エラーを発生させるためのIIS設定はどうすればよいか(3) | Nomal起動ディスプレイの指定方法について(6) | NomalSystem.Threading.Thread.Sleep()と変数(2) | NomalVisual Studio DataTableの値のアクセスの仕方(2) | NomalDatagridviewのクリア(2) | NomalDataGridView 行の背景色の設定(2) | NomalListBoxにデータが表示されない(6) | NomalPIctureBox同士を論理合成したい(3) | NomalDrawString前のFillRectangle有無により文字の太さが違う理由について教えて下さい(3) | Nomalポルトガル語の登録(5) | NomalnumericUpDwonコントロールのvalue(2) | Nomalデータセット定義ファイルからDataTable(3) | NomalDataTableの構造が同じか調べるメソッド(2) | Nomalネットの画像の複数枚を重ね合わせたい(3) |



■記事リスト / ▼下のスレッド
■34323 / 親記事)  JOIN操作の構文エラー
□投稿者/ 社畜からの開放 一般人(3回)-(2019/10/22(Tue) 19:57:18)
  • アイコン環境/言語:[Win10 64bit VB.NET] 
    分類:[.NET] 

    お世話になっております。
    (前回の質問と名前を合わせるために見ていたら開放を誤字していて恥ずかしいです。)

    VB.NETでSQL文を使用しようとしたところ
    「System.Data.OleDb.OleDbException: 'JOIN 操作の構文エラーです。'」というエラーが表示されます。

    SQLの構文が何か間違っているのだとは思いますが、原因がわかりません。

    試したこととしては
    Dim commText As String = "SELECT * FROM " & csvfile_Order
    ⇒正常にDataGridViewに表示されます。

    Dim commText As String = "SELECT * FROM [""" & csvfile_Order & """] LEFT OUTER JOIN [""" & csvfile_Shop & """] ON [""" & csvfile_Order & """].[ShopCode]=[""" & csvfile_Shop & """].[ShopCode]"
    ⇒System.Data.OleDb.OleDbException: ''["OrderMaster.csv"].[ShopCode]' のかっこの使い方が正しくありません。'

    Dim commText As String = "SELECT * FROM [" & csvfile_Order & "] LEFT OUTER JOIN [" & csvfile_Shop & "] ON [" & csvfile_Order & "].[ShopCode]=[" & csvfile_Shop & "].[ShopCode]"
    ⇒System.Data.OleDb.OleDbException: ''["OrderMaster.csv"].[ShopCode]' のかっこの使い方が正しくありません。'

    また、使用しているcsvですが試作のためのダミーデータです。
    JOINしようとしているデータ型が違う等の凡ミスもないと思っております。
    コードの下に、schema.iniも記載いたします。
    (日付もCharにしているのは実力不足ですので気にしないでください。)

    以下コードです。
    Form1.vb
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Const csvDir = "C:\Users\UserName\Desktop\"
    Const csvfile_Order = "OrderMaster.csv"
    Const csvfile_Shop = "ShopMaster.csv"
    'Const csvfile_Goods = "GoodsMaster.csv"

    Dim conString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & csvDir & ";Extended Properties =""text;HDR=Yes;FMT=Delemited"""
    Dim con As New System.Data.OleDb.OleDbConnection(conString)


    Dim commText As String = "SELECT * FROM " & csvfile_Order & " LEFT OUTER JOIN " & csvfile_Shop & " ON " & csvfile_Order & ".[ShopCode]=" & csvfile_Shop & ".[ShopCode]"
    Debug.Print(commText)
    Dim da As New System.Data.OleDb.OleDbDataAdapter(commText, con)

    Dim dt As New DataTable
    da.Fill(dt)
    DataGridView1.DataSource = dt

    MsgBox("完了")

    End Sub


    schema.ini

    [OrderMaster.csv]
    ColNameHeader=True
    Format=CSVDelimited
    Col1="OrderKey" Integer
    Col2="ShopCode" Char
    Col3="GoodsCode" Char
    Col4="PlanDate" Char
    Col5="StatusCode" Char
    Col6="RgstDate" Char
    Col7="UpdtDate" Char
    Col8="UpdtCode" Char

    [GoodsMaster.csv]
    ColNameHeader=True
    Format=CSVDelimited
    Col1="GoodsKey" Integer
    Col2="GoodsCode" Char
    Col3="GoodsName" Char

    [ShopMaster.csv]
    ColNameHeader=True
    Format=CSVDelimited
    Col1="ShopKey" Integer
    Col2="ShopCode" Char
    Col3="ShopName" Char

違反を報告
引用返信

▽[全レス4件(ResNo.1-4 表示)]
■34324 / ResNo.1)  Re[1]: JOIN操作の構文エラー
□投稿者/ Hongliang 大御所(566回)-(2019/10/22(Tue) 21:48:11)
  • アイコン
    2019/10/22(Tue) 21:49:09 編集(投稿者)
    
    テーブルにはエイリアスをつけて、以降はエイリアスの方を使うようにします。
    あと、&で文字を結合するより、String.Formatか、Visual Studio 2015以降であれば
    文字列補間を使うことをお勧めします。
    
    文字列補間を使った場合はこんな感じ。文字列開始が"ではなく$"になります。
    ついでに、Visual Studio 2015以降だと文字列中に改行も入れられます。
    
    Dim commText As String = $"SELECT *
    FROM  [{csvfile_Order}] AS order
    LEFT OUTER JOIN [{csvfile_Shop}] AS shop
      ON order.ShopCode = shop.ShopCode"

違反を報告
引用返信
■34325 / ResNo.2)  Re[2]: JOIN操作の構文エラー
□投稿者/ 社畜からの開放 一般人(4回)-(2019/10/23(Wed) 20:47:17)
  • アイコンHongliangさん、回答ありがとうございます。
    無事目指すものがうまく表示されました。

    エイリアス(AS使うやつ?)がフィールド名以外でも使えることを知りませんでした。

    文字列補間は便利そうですが、変数の型とか定数と変数とか意識しないと一気にぐちゃぐちゃ書いちゃう人なので参考とさせていただきます。

    後学のために教えていただきたいのですがなぜパス名指定ではうまくいかず、エイリアスによる指定ではうまくいったのでしょうか。

    1つのスレッドで複数の質問に該当する場合は申し訳ございません。
    一方で解決済みにしてよいものかも判断できないため数日様子を見させていただきます。
違反を報告
引用返信
■34326 / ResNo.3)  Re[3]: JOIN操作の構文エラー
□投稿者/ Hongliang 大御所(567回)-(2019/10/24(Thu) 10:49:06)
  • アイコン> 変数の型とか定数と変数とか意識しないと一気にぐちゃぐちゃ
    というのが文字列を&で結合するのとどう関係するのかよく分かりませんが、文字列を&で結合するのよりは文字列補間の方がぐちゃぐちゃにはならないと思います。

    > 後学のために教えていただきたいのですがなぜパス名指定ではうまくいかず、エイリアスによる指定ではうまくいったのでしょうか。
    正確なところは分かりませんが、少なくともOleDb/JETでcsvを扱う場合において、基本的にピリオドは [] や `` の有無に関わらず識別子として存在してはいけない文字のようですね。
    ただし、FROM句やJOIN句にはテーブル名が指定されることが明らかなので、ピリオドが含まれていても良く、[] や `` も必要ないようです。

    なおピリオドは # で代用することができるようです。これを使えば
    SELECT [hoge#csv].name FROM hoge#csv
    なんて記述もできます。
    まあエイリアスを使うのをお勧めしますが。
違反を報告
引用返信
■34327 / ResNo.4)  Re[4]: JOIN操作の構文エラー
□投稿者/ 社畜からの開放 一般人(5回)-(2019/10/24(Thu) 18:25:38)
  • アイコンHongliang様、回答ありがとうございます。

    csvを扱うのに.がエスケープさえ許されないのは少し不思議です。
    教わったエイリアスを使わせていただきます。

    文字列補間は新しい知識に困惑していますが頑張って練習してみます。
解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-4]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■34318 / 親記事)  VisualStudioでマクロ
□投稿者/ VBはじめました 一般人(3回)-(2019/10/15(Tue) 15:21:04)
  • アイコン環境/言語:[VisualStudio2017 VB.net] 
    分類:[.NET] 

    VisualStudioで、
    各行の先頭についている文字を削除する方法ってありますか?

    例えば、下記のようなサンプルをコピペした時に、先頭の:以前の文字を削除したい。

    (引用先:https://www.atmarkit.co.jp/fdotnet/vb6tonet/vb6tonet23/vb6tonet23_01.html)
    1: Delegate Function SampleDelegate(ByVal x As Integer, ByVal y As Integer) As Integer
    2:
    3: Public Class SampleClass
    4: Public Function SampleMethod(ByVal x As Integer, ByVal y As Integer) As Integer
    5: Return x * y
    6: End Function
    7: End Class
    8:
    9: Public Class Form1
    10: Inherits System.Windows.Forms.Form
    11:
    12: …Windows フォーム デザイナで生成されたコード…
    13:
    14: Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    15: Dim SampleInstance As New SampleClass()
    16: Dim sample As SampleDelegate = AddressOf SampleInstance.SampleMethod
    17: Dim result As Integer = sample(2, 3)
    18: Trace.WriteLine(result.ToString())
    19: End Sub
    20: End Class

    どなたか?詳しい方いらっしゃいましたら宜しくお願いいたします。

違反を報告
引用返信

▽[全レス3件(ResNo.1-3 表示)]
■34319 / ResNo.1)  Re[1]: VisualStudioでマクロ
□投稿者/ Hongliang 大御所(565回)-(2019/10/15(Tue) 15:32:33)
  • アイコンそれぐらいなら正規表現で置換すればいいかと思いますが。
    Ctrl+Rで置換ウィンドウを出して、左下のアイコンの中から正規表現を選んでおいて、
    ^[ \t]*[0-9]+:
    を消す感じで。

    あるいは矩形選択(Altを押しながら選択)して削除するとか。
違反を報告
引用返信
■34320 / ResNo.2)  Re[2]: VisualStudioでマクロ
□投稿者/ VBはじめました 一般人(4回)-(2019/10/15(Tue) 17:20:56)
  • アイコンできました。有難うございます。
    置き換えで成否表現が使えるの知りませんでした。

    問題ないのですが、欲をかくと。
    これを、マクロ化するってできないですよね?

違反を報告
引用返信
■34322 / ResNo.3)  Re[3]: VisualStudioでマクロ
□投稿者/ VBはじめました 一般人(6回)-(2019/10/15(Tue) 20:42:44)
  • アイコンありがとうございました!
解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-3]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■34311 / 親記事)  VisualStudioでExcelのVSTO開発
□投稿者/ VBはじめました 一般人(1回)-(2019/10/11(Fri) 09:45:23)
  • アイコン環境/言語:[VB] 
    分類:[.NET] 

    初めまして、宜しくお願い致します。

    VisualStudio2017 で、VBを使ってExcelのブックを作成しています。
    (新しいプロジェクトでVSTOアドイン、ExcelVSTOブックを選択してプロジェクトを作成)

    質問は、プロジェクトを発行した後に、そのプロジェクトをベースに機能追加しようとして、ソリューションのフォルダーを複写して、フォルダー内のソリューションファイルをダブルクリックしてVisualstudioを立ち上げて編集します。
    その後、ビルドすると、Officeのカスタマイズのインストールでエラーが発生します。
    ※現在他のバージョンがインストールされており、この場所からアップグレードすることはできないため、このカスタマイズをインストールすることはできません。

    と、表示されます。

    そこで、私は、発行した後の、機能追加は、新しいプロジェクトを作成し、発行したソリューション内の全てのコードを手動で複写しています。
    もの凄く、手間がかかるのですが、何かいい解決方法があれば教えて頂けないでしょうか?

    言葉での説明なので、判りにくくてすみませんが、宜しくお願い致します。
違反を報告
引用返信

▽[全レス3件(ResNo.1-3 表示)]
■34312 / ResNo.1)  Re[1]: VisualStudioでExcelのVSTO開発
□投稿者/ shu 大御所(487回)-(2019/10/11(Fri) 10:04:37)
  • アイコンNo34311に返信(VBはじめましたさんの記事)

    把握している状況が正しいか分かりませんが、
    同一ソースで別のプロジェクトを用意すればよいのであれば
    同じフォルダーに名前を変えてソリューションとプロジェクトを作成すれば
    ソースを共有してプロジェクト設定を変えることは出来ます。
違反を報告
引用返信
■34313 / ResNo.2)  Re[2]: VisualStudioでExcelのVSTO開発
□投稿者/ VBはじめました 一般人(2回)-(2019/10/13(Sun) 18:22:56)
  • アイコンshuさん ありがとうございます。


    > 同一ソースで別のプロジェクトを用意すればよいのであれば
    > 同じフォルダーに名前を変えてソリューションとプロジェクトを作成すれば
    > ソースを共有してプロジェクト設定を変えることは出来ます。

    同じフォルダーに名前を変えてソリューションとプロジェクトはどのように作れるのでしょうか?VisualStudio内の操作でしょうか?
    エクスプローラで複写するのでしょうか?(私は、これをやっているのですが、質問のようなエラーが発生します。)

    昨日から、色々やっているのですが、さっぱりわかりません。

違反を報告
引用返信
■34321 / ResNo.3)  Re[3]: VisualStudioでExcelのVSTO開発
□投稿者/ VBはじめました 一般人(5回)-(2019/10/15(Tue) 20:41:39)
  • アイコン
    shuさん ありがとうございました!



解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-3]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■34314 / 親記事)  OracleDataAccess を参照したプログラムでデバッグモードが機能しなくなる
□投稿者/ kane123 一般人(1回)-(2019/10/14(Mon) 10:22:38)
  • アイコン環境/言語:[VB.net , .NET Framework3.5 , Windows7 (32bit), VisualStudio Standard 2010] 
    分類:[.NET] 

    お世話になっております。
    
    VB.net , .NET Framework3.5  , Windows7 (32bit), VisualStudio Standard 2010
    という環境下で  Oracle.Data.Access (2.112.1.0) を使用したWindowsFormアプリを開発しております。
    
    ODP.netのライブラリである、Oracle.Data.Accessを使用した処理を実行すると、
    VisualStudioのデバッガ機能が通常通り機能せず、いかなるエラーであっても実行時
    エラー発生箇所で停止することなくアプリケーションが異常終了してしまい、バグ発生箇所
    の特定がしづらいという事象が起こっています。下記の、Button1_Clickはその事象を端的に
    再現させたものです。ゼロ除算を行っている箇所で、「vshost32-clr2.exe は動作を停止しました」
    とのメッセージが出て異常終了してしまします。
    
    何か対策はありますでしょうか?
    
    もし現状のままで行くとなると、全ての処理にTry Catch ステートメントを噛ませてデバッグしなければ
    いけないということになり、これは避けたいです。
    
    また、今までにVisualStudioを使った他の開発者で、この事象が起こらないパターンも
    目にしているので、何かしら糸口はあるはずでは、と考えております。
    
    よろしくお願いいたします。
    
    Public Class Form1
    
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    
            Dim oracon As New Oracle.DataAccess.Client.OracleConnection("xxxxxxxxxx")
            'Oracle.DataAccess を使用する
    
            Dim i As Integer = 1
            i = i / 0    'デバッガが停止せず異常終了。
    
        End Sub
        Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
    
            Dim i As Integer = 1
            i = i / 0        'デバッガが停止してくれる。
    
        End Sub
    End Class
    
    

違反を報告
引用返信

▽[全レス3件(ResNo.1-3 表示)]
■34315 / ResNo.1)  Re[1]: OracleDataAccess を参照したプログラムでデバッグモードが機能しなくなる
□投稿者/ kane123 一般人(2回)-(2019/10/14(Mon) 11:26:35)
  • アイコン
    半分、自己解決に至りましたので報告いたします。
    
    
    VisualStudio Community 2019 にて、.NetFramework 4.5.2
    でアプリケーションを新規作成し上記を実行したところ、
    デバッグ停止するようになりました。 
    
    VisualStudio の各バージョン/エディションと、もしくは.NetFrameworkのバージョンと
    各Oracle.Data.Accessのバージョンの間に、相互の相性などがあるのであれば、その相性を
    一覧などで入手できたらいいな、というふうに思います。
    
    もう少し、自分の環境で様々な組み合わせで検証してみようと思います。
    

違反を報告
引用返信
■34316 / ResNo.2)  Re[2]: OracleDataAccess を参照したプログラムでデバッグモードが機能しなくなる
□投稿者/ Hongliang 大御所(564回)-(2019/10/14(Mon) 12:03:58)
  • アイコンVisual Studio 2010だとプロジェクトのプロパティにホスティングプロセス云々というのがあるかと思いますが、そのチェックを外してみてはいかがでしょうか。
    検証環境などを持ってるわけでもなく、エラーの内容からの連想(推測ですらない)ですが。
違反を報告
引用返信
■34317 / ResNo.3)  Re[3]: OracleDataAccess を参照したプログラムでデバッグモードが機能しなくなる
□投稿者/ kane123 一般人(3回)-(2019/10/14(Mon) 16:38:18)
  • アイコン
    回答ありがとうございます。 
    
    >>Visual Studio 2010だとプロジェクトのプロパティにホスティングプロセス云々というのがあるかと思いますが、そのチェックを外してみてはいかがでしょうか。
    
    試してみましたが、変化はありませんでした。
    なお、VisualStudio2010でも詳細コンパイルオプションで .NetFramework4.0に
    変更したところ、、VisualStudio2010であっても、デバッグ機能が正常に
    機能するようになりました。 現時点では、.NET Framewrokのバージョン数とODP.netのバージョンに「相性」があるということが、(検証によって)ある程度推察される、というレベルですね。

違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-3]



■記事リスト / ▲上のスレッド
■34297 / 親記事)  IE11では表示されるが、.netのWebBrowserでは、表示されないHPを表示する方法
□投稿者/ minarai_database 一般人(1回)-(2019/10/02(Wed) 12:01:36)
  • アイコン環境/言語:[VisualStudio2017 VB.net,C#] 
    分類:[.NET] 

    (環境)
    Windows7(10の時もある) VisualStudio2017 VB.NET(C#で回答でも構いません)
    フォームにWebBrowser(レジストリーをさわり、IE7をIE11に切り替えて使用しています。)を配置して下記のアドレスをNavigateしてもHPが表示されません。
    https://shikiho.jp/stocks/1944
    しかし、 Internet Explorer 11では、アドレスを入力すると表示されます。

    WebBrowserで、表示する方法、わかる人いましたら教えて頂けないでしょうか?
    宜しくお願いいたします。
違反を報告
引用返信

▽[全レス7件(ResNo.3-7 表示)]
■34301 / ResNo.3)  Re[3]: IE11では表示されるが、.netのWebBrowserでは、表示されないHPを表示する方法
□投稿者/ 魔界の仮面弁士 大御所(1239回)-(2019/10/02(Wed) 16:21:53)
  • アイコンNo34297に返信(minarai_databaseさんの記事)
    > 下記のアドレスをNavigateしてもHPが表示されません。
    > https://shikiho.jp/stocks/1944

    そもそも四季報オンラインは、Microsoft InternetExplorer からの
    正常動作を保証していないそうです。
    https://info.shikiho.jp/help/notice/detail/%E3%80%90%E9%87%8D%E8%A6%81%E3%80%91microsoft-internetexplorer%E3%82%92%E3%81%8A%E4%BD%BF%E3%81%84%E3%81%AE%E6%96%B9%E3%81%B8/


    > しかし、 Internet Explorer 11では、アドレスを入力すると表示されます。

    開けることは開けますが、CORS 警告が出ていました。(仔細未確認)


    > WebBrowserで、表示する方法、わかる人いましたら教えて頂けないでしょうか?

    x86 ビルドと x64 ビルドの両方で検証してみました。

    サイト側の問題で多少スクリプトエラーが出ますが、それらを無視して動かした場合、
    IE7〜10 モードだと、真っ白なページのまま先に進まなくなってしまったのですが、
    IE11 モードの場合は、15秒ぐらいかけて全コンテンツがロードされているようです。


    // --- Program.cs ---
    using Microsoft.Win32;
    using System;
    using System.Diagnostics;
    using System.IO;
    using System.Windows.Forms;
    namespace WindowsFormsApp
    {
      public static class Program
      {
        [STAThread]
        private static void Main()
        {
          RegistIEMode();
          Application.EnableVisualStyles();
          Application.SetCompatibleTextRenderingDefault(false);
          Application.Run(new Form1());
        }

        private static void RegistIEMode(int? dword = 11001)
        {
          string filename = Path.GetFileName(Process.GetCurrentProcess().MainModule.FileName);
          Debug.Assert(Registry.CurrentUser != null, "Registry.CurrentUser != null");
          RegistryKey key1 = Registry.CurrentUser.CreateSubKey(@"SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION");
          RegistryKey key2 = Registry.CurrentUser.CreateSubKey(@"SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BEHAVIORS");
          if (dword != null)
          {
            key1?.SetValue(filename, dword, RegistryValueKind.DWord);
            key2?.SetValue(filename, 1, RegistryValueKind.DWord);
          }
          else
          {
            key1?.DeleteValue(filename);
            key2?.DeleteValue(filename);
          }
          key1?.Close();
          key2?.Close();
        }
      }
    }


    // --- Form1.cs ---
    using System.Windows.Forms;
    namespace WindowsFormsApp
    {
      public partial class Form1 : Form
      {
        public Form1()
        {
          InitializeComponent();
          comboBox1.DataSource = new string[]
          {
            "https://supportdetails.com/",
            "https://shikiho.jp/stocks/1944",
          };
          webBrowser1.ScriptErrorsSuppressed = false; // あえて false で実験してみた
          Text = webBrowser1.Version.ToString();
          button1.Click += (sender, e) => webBrowser1.Navigate(comboBox1.Text);
          Shown += (sender, e) =>
          {
            comboBox1.SelectedIndex = 0;
            button1.PerformClick();
          };
        }
      }
    }
違反を報告
引用返信
■34304 / ResNo.4)  Re[4]: IE11では表示されるが、.netのWebBrowserでは、表示されないHPを表示する方法
□投稿者/ minarai_database 一般人(3回)-(2019/10/03(Thu) 09:39:13)
  • アイコン 魔界の仮面弁士様 お返事有難うございます。

    社内システムの関係でIEに固執していましたが、WebBrowserを諦めChromeに乗り換えます。
    その場合、Seleniumによる制御が便利でしょうか?


違反を報告
引用返信
■34305 / ResNo.5)  Re[5]: IE11では表示されるが、.netのWebBrowserでは、表示されないHPを表示する方法
□投稿者/ 魔界の仮面弁士 大御所(1240回)-(2019/10/03(Thu) 10:26:01)
  • アイコンNo34304に返信(minarai_databaseさんの記事)
    > 社内システムの関係でIEに固執していましたが、WebBrowserを諦めChromeに乗り換えます。

    そもそも目的は何でしょうか?
    閲覧ツールの作成? それともスクレイピング目的?

    HTML 要素の取得なら、Selenium の他、HtmlAgilityPack や AngleSharp 等の
    選択肢が思い当たりますが、今回の目的に合致するかは分かりません。
    (当方は、会社四季報オンラインのアカウントを持ち合わせていないため)


    また、データの自動収集が目的だとすると、同サービス規約の
    第13条1項10号に抵触する可能性があるかもしれません。
    https://s.toyokeizai.net/category/SERVICELIST/SHIKIHO.html

    》 第13条(利用者のその他の禁止行為)

    》 1. 利用者は、本規約の他の条項において禁止される行為の他、本サービスにおいて以下の行為をしてはならないものとします。また、運営者は(以下略)

    》 (10) 本サービスで提供された情報を、コンピューター等を利用して自動取得する行為
違反を報告
引用返信
■34306 / ResNo.6)  Re[6]: IE11では表示されるが、.netのWebBrowserでは、表示されないHPを表示する方法
□投稿者/ minarai_database 一般人(4回)-(2019/10/03(Thu) 10:48:03)
  • アイコン閲覧目的ですよ!
    所有株をエクセルで管理しているので、四季報の画面を立ち上げてイチイチコード入力するのが面倒なので・・・

    有難うございました。
違反を報告
引用返信
■34307 / ResNo.7)  Re[7]: IE11では表示されるが、.netのWebBrowserでは、表示されないHPを表示する方法
□投稿者/ minarai_database 一般人(5回)-(2019/10/03(Thu) 11:39:18)
  • アイコン有難うございました
解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-7]






Mode/  Pass/


- Child Tree -

2020/12/02(Wed) 11:06:52 に作成されたキャッシュを表示しています。
生のデータを表示する | キャッシュを最新にする