C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 >>
■69792  Re[2]: バッチファイルのfor文における文字列の取り扱い
□投稿者/ OROCHI -(2014/01/29(Wed) 19:12:12)
    No69791 (とっちゃん さん) に返信
    解決しました。ありがとうございました!


    > ■No69790 (OROCHI さん) に返信
    >
    > --
    > echo off
    > rem 同じ形
    > for /f %%a in (29.txt) do (
    > echo XX_%%a.png
    > )
    >
    > rem 凝った方法
    > for /f %%a in (29.txt) do call :disp_name %%a
    > goto end
    >
    > :disp_name
    > set codename=%1
    > echo XX_%codename%.png
    > exit /b
    >
    > :end
    > --
    > こんな感じでどうでしょう?
    > 凝った方法については、別のバッチファイルを呼び出すという形でも実現できます。
    >
    > 環境変数とか細かく作りこむより、ストレートにパラメータを使うほうが現実的なのかな?と思います。
    >
    >
記事No.69790 のレス / END /過去ログ119より / 関連記事表示
削除チェック/

■69793  自作ユーザコントロールがツールボックスに追加できない
□投稿者/ てっくたいと -(2014/01/29(Wed) 19:17:16)

    分類:[.NET 全般] 

    いつも参考にさせて頂いております。

    現在Visual Studio2010でユーザーコントロールを持つDLLを作成し、
    Visual Studio2008のアプリケーションで利用しようとしています。

    開発中はアプリのプロジェクトをDLLのソリューションに追加して問題なく利用できていたのですが、
    いざプロジェクト参照を削除し、成果物のDLLのみをアプリの参照設定に追加し、
    [ツール]→[ツールボックスアイテムの選択]から上記DLLを参照したところ、
    「ツールボックスに含めることのできるコンポーネントは何もありません」と表示されてしまい、
    ツールボックスの一覧の中にユーザーコントロールを追加することができませんでした。

    どのような原因が考えられますでしょうか。

    ちなみにユーザコントロールクラスの宣言は以下のようになっております。
    namespace Test.Namespace
    {
    [System.Drawing.ToolboxBitmap(typeof(TestScreen ), "Icon.bmp")]
    public partial class TestScreen : UserControl
    {


    宜しくお願い致します。
親記事 /過去ログ119より / 関連記事表示
削除チェック/

■69796  Re[1]: 自作ユーザコントロールがツールボックスに追加できない
□投稿者/ てっくたいと -(2014/01/30(Thu) 10:14:43)
    すみません、自己解決致しました。
    どうやらコンストラクタを書き換えて、
    引数なしのデフォルトコンストラクタが存在しないことが理由のようでした。
記事No.69793 のレス / END /過去ログ119より / 関連記事表示
削除チェック/

■69780  DB接続 どこでSqlConnectionをdispose
□投稿者/ ブルー -(2014/01/29(Wed) 15:08:13)

    分類:[C#] 

    下記のようなコードがあります。内容は、データベースに接続して、接続成功・失敗を判定しています。
    また、接続に成功したら、挿入処理をしようとしています。

    MainFormからDBクラスを呼び出しています。

    この時、どこで、どうやってSqlCoonectionをdisposeしてやればいいかわかりません。お教え頂けませんでしょうか?

    DBクラスのConnectionDBメソッドの中で、

    using (sqlConn = new SqlConnection(conStr))

    とやれば、DBクラス内でdisposeできるのは理解できるのですが、それをやってしまうとInsertDB()でSqlCoonectionを利用できなくなってしまいます。
    InsertDB()処理が終わった後に、SqlConnectionをdisposeする方法をお教え頂けませんでしょうか?

    //=======================================================
    //メインクラス

    class MainForm{

    private void ImpData_Click(object sender, EventArgs e)
    {
    try{
    DB db = new DB();
    db.ConnectionDB();
    } catch(SqlConnection ex){
    MessageBox.Show("失敗");
    return;
    }

    MessageBox.Show("接続成功");

    //この後に、データ挿入などの処理有り
    db.InsertDB();
    // この後にSqlConnectionをdisposeしたいです。

    }
    }

    //=======================================================
    //接続用クラス

    class DB{

    //DB接続文字列用変数
    string conStr;

    //接続変数
    sqlConnection sqlConn;

    public void ConnectionDB(){

    conStr = "接続文字列";
    sqlConn = new SqlConnection(conStr);

    try{
    sqlCon.Open();
    } catch(SqlConnection ex){
    sqlConn.Close();
    MessageBox.Show("接続失敗");
    }
    }

    public void InsertDB(){
    //Insertの処理 ここでsqlConnを利用する
    }

    }
親記事 /過去ログ119より / 関連記事表示
削除チェック/

■69781  Re[1]: DB接続 どこでSqlConnectionをdispose
□投稿者/ shu -(2014/01/29(Wed) 15:17:20)
    No69780 (ブルー さん) に返信

    DBクラスのインスタンス作成では
    接続情報だけ保存するようにして

    InsertDBの中で
    (1) Connection作成
    (2) Connectionオープン
    (3) 処理
    (4) Connectionクローズ
    (5) Dispose
    とするのが良いと思います。
記事No.69780 のレス /過去ログ119より / 関連記事表示
削除チェック/

■69785  Re[2]: DB接続 どこでSqlConnectionをdispose
□投稿者/ ブルー -(2014/01/29(Wed) 16:17:21)
    shu さん

    お忙しい中ご回答頂きありがとうございます。

    >InsertDBの中で
    >(1) Connection作成
    >(2) Connectionオープン
    >(3) 処理
    >(4) Connectionクローズ
    >(5) Dispose

    やはりInsertDBの中でオープン・クローズしてあげるしかないのですね。
    接続は接続でまとめられたメソッドを利用できれば便利だと思いましたが、難しそうですね。

    Connectionはフォームが閉じられた時に、自動でDisposeされるものなのでしょうか?
    もしされるのであれば、Close、Disposeせずに、そのままにしておこうと思ったのですがセキュリティ上マズいでしょうか?
    もしくは、使わないのに、オープンにしっぱなしだと何らかの不具合がでますでしょうか?


    No69781 (shu さん) に返信
    > ■No69780 (ブルー さん) に返信
    >
    > DBクラスのインスタンス作成では
    > 接続情報だけ保存するようにして
    >
    > InsertDBの中で
    > (1) Connection作成
    > (2) Connectionオープン
    > (3) 処理
    > (4) Connectionクローズ
    > (5) Dispose
    > とするのが良いと思います。
    >
記事No.69780 のレス /過去ログ119より / 関連記事表示
削除チェック/

■69788  Re[1]: DB接続 どこでSqlConnectionをdispose
□投稿者/ an -(2014/01/29(Wed) 16:47:34)
    No69780 (ブルー さん) に返信
    > この時、どこで、どうやってSqlCoonectionをdisposeしてやればいいかわかりません。お教え頂けませんでしょうか?
    
    DBクラスに接続用メソッドがあるので、
    切断用メソッドを作って、そこでSqlCoonectionをdispose呼び出してあげればいいのでは?
    
    InsertDBメソッドを呼ぶ前に、接続用メソッドを呼ぶ必要があるので、
    それと合わせて、InsertDBメソッドを呼び出した後は、忘れずに切断用メソッドを呼ぶようにする。
    
    さらにいうと、例外発生時も考慮して、
    DBクラスにIDisposableインターフェースを実装し、
    DBクラスのDisposeメソッドにて、
    SqlCoonectionなりDisposeが必要なものに対してDisposeしてあげて、
    MainForm等から呼び出す場合に
    
    try{
        using (db = new DB()){
            ConnectionDB();
            BeginTransDB();
            InsertDB();
            UpdateDB();
            DeleteDB();
            CommitDB();
            CloseDB();
        }
    } catch(SqlConnection ex){
        sqlConn.Close();
        MessageBox.Show("接続失敗");
    }
    
    のような感じで使うとか?
    
    試していないので、本当にできるか?考え方として合っているか?とか分かりませんので、
    参考まで・・・。
    
記事No.69780 のレス /過去ログ119より / 関連記事表示
削除チェック/

■69786  Re[3]: DB接続 どこでSqlConnectionをdispose
□投稿者/ shu -(2014/01/29(Wed) 16:42:50)
    No69785 (ブルー さん) に返信
    > Connectionはフォームが閉じられた時に、自動でDisposeされるものなのでしょうか?
    > もしされるのであれば、Close、Disposeせずに、そのままにしておこうと思ったのですがセキュリティ上マズいでしょうか?
    > もしくは、使わないのに、オープンにしっぱなしだと何らかの不具合がでますでしょうか?
    >
    サーバー側に接続状態が残ってしまい、複数クライアントからの接続に支障をきたす場合があります。
記事No.69780 のレス /過去ログ119より / 関連記事表示
削除チェック/

■69789  Re[3]: DB接続 どこでSqlConnectionをdispose
□投稿者/ WebSurfer -(2014/01/29(Wed) 16:50:26)
    No69785 (ブルー さん) に返信
    > Connectionはフォームが閉じられた時に、自動でDisposeされるものなのでしょうか?
    > もしされるのであれば、Close、Disposeせずに、そのままにしておこうと思ったのですがセキュリティ上マズいでしょうか?
    > もしくは、使わないのに、オープンにしっぱなしだと何らかの不具合がでますでしょうか?

    コネクションリークを防止するための基本について、まず以下のページを
    読まれることをお勧めします。

    .NETの例外処理 Part.2
    http://blogs.msdn.com/b/nakama/archive/2009/01/02/net-part-2.aspx


    今回の InsertDB メソッドの実装については、上記のページの[テーブル
    アダプタを使う場合]のセクションにある最初のコードのように、Open し
    ているか否かを調べて Open/Close の処置を行うようにしてはいかがですか?

    Visual Studio の TableAdapter 構成ウィザードを利用して作る TableAdapter
    クラスを使えば、自分では一行もコードを書かないで必要な実装ができるの
    ではないかと思います。そちらも検討してみることをお勧めします。

    自分で実装したいと言うことであっても、自動生成された TableAdapter の
    コードはかなり参考になると思います。

    Visual Studio の TableAdapter 構成ウィザードを起動して、「生成するメソ
    ッドの選択」メニューで「更新を直接データベースに送信するためのメソッド
    を生成する (GenereateDBDirectMethods) (U)」にチェックを入れて Insert,
    Update, Delete メソッドを自動生成させて、そのコードを見てみてください。
記事No.69780 のレス /過去ログ119より / 関連記事表示
削除チェック/

■69797  Re[4]: DB接続 どこでSqlConnectionをdispose
□投稿者/ ブルー -(2014/01/30(Thu) 10:56:10)
    shuさん

    サーバー側に変な情報が残ってしまうのですか。勉強になります、ありがとうございます。

    anさん

    お教え頂きましたように、切断メソッドを作って対応してみました。ありがとうございます。
    //=======================================================
    //接続用クラス

    class DB{

    //DB接続文字列用変数
    string conStr;

    //接続変数
    sqlConnection sqlConn;

    public void ConnectionDB(){

    conStr = "接続文字列";
    sqlConn = new SqlConnection(conStr);

    try{
    sqlCon.Open();
    } catch(SqlConnection ex){
    sqlConn.Close();
    MessageBox.Show("接続失敗");
    }
    }

    //データベースにインサート
    public void InsertDB(){
    //Insertの処理 ここでsqlConnを利用する
    }

    //Insert処理

    //切断処理
    CloseDB();
    }

    //データベース切断
    private void CloseDB()
    {
    sqlConn.Dispose();
    }

    WebSurfer さん

    お教え頂きましたサイトを見てみました。大変勉強になってわかりやすかったです。ありがとうございます。

    また自動生成されたTableAdapterのコードは見たことが無かったので、こちらも勉強になります。

    皆様ありがとうございました。
記事No.69780 のレス / END /過去ログ119より / 関連記事表示
削除チェック/

■69799  Re[5]: DB接続 どこでSqlConnectionをdispose
□投稿者/ WebSurfer -(2014/01/30(Thu) 11:30:20)
    No69797 (ブルー さん) に返信
    > WebSurfer さん
    >
    > お教え頂きましたサイトを見てみました。大変勉強になってわかりやすかったです。ありがとうございます。
    >
    > また自動生成されたTableAdapterのコードは見たことが無かったので、こちらも勉強になります。

    ホントに見てますか? 見てたら上のレスに書いてあるような実装にはしないと思いますけど。
記事No.69780 のレス / END /過去ログ119より / 関連記事表示
削除チェック/

■69801  Re[5]: DB接続 どこでSqlConnectionをdispose
□投稿者/ an -(2014/01/30(Thu) 11:57:57)
    No69797 (ブルー さん) に返信
    > anさん
    >
    > お教え頂きましたように、切断メソッドを作って対応してみました。ありがとうございます。
    > //=======================================================
    > //接続用クラス
    >
    > class DB{
    >
    > //DB接続文字列用変数
    > string conStr;
    >
    > //接続変数
    > sqlConnection sqlConn;
    >
    > public void ConnectionDB(){
    >
    > conStr = "接続文字列";
    > sqlConn = new SqlConnection(conStr);
    >
    > try{
    > sqlCon.Open();
    > } catch(SqlConnection ex){
    > sqlConn.Close();
    > MessageBox.Show("接続失敗");
    > }
    > }
    >
    > //データベースにインサート
    > public void InsertDB(){
    > //Insertの処理 ここでsqlConnを利用する
    > }
    >
    > //Insert処理
    >
    > //切断処理
    > CloseDB();
    > }
    >
    > //データベース切断
    > private void CloseDB()
    > {
    > sqlConn.Dispose();
    > }

    なんか、正しく伝わっていないような気がしますので、補足します。
    (というかミスリードしてしまったような?)

    自分の説明した部分の肝は

    >>DBクラスにIDisposableインターフェースを実装し、
    >>DBクラスのDisposeメソッドにて、
    >>SqlCoonectionなりDisposeが必要なものに対してDisposeしてあげて、

    これだったのですが、上記ソースコードだと、
    結局例外発生時等にDisposeされないような気がします。


    そもそも、上記ソースコードをコピペしましたが、コンパイルエラーがあり、
    動作しません。
    なので、なんとなく修正してみました。
    (「public void InsertDB」の位置、例外の型、細かい誤字等)
    しかし、修正した上でのソースコードを眺めると違和感があります。

    ConnectionDBメソッドの中でインサート処理するのでしょうか?
    メソッド名(ConnectionDB)と実際の処理(接続&インサート&切断?)が
    一致していないと思います・・・
    (なんとなく修正した方法が間違っているのかな?
     でも、登場クラスも接続用クラスのみでメインクラスがいませんし・・・。)

    そもそも、この方式でやるなら、Usingでいけそうな気が・・・。


    本当に上記ソースコードでなのですか?
記事No.69780 のレス / END /過去ログ119より / 関連記事表示
削除チェック/

■69794  バッチでのコマンドプロンプトのサイズ取得
□投稿者/ OROCHI -(2014/01/29(Wed) 21:42:01)

    分類:[Windows 全般] 

    こんにちは
    現在、数値を1行ずつ出力するバッチファイルを書いているのですが、以下のようにしたいと思っています
    1.DOSプロンプトの中に収まりきらない場合、一旦停止
    2.リターンキーを押せば、再開
    3.以降、1と2を繰り返す

    と思って以下の様なソースを書いてみました
    要は現在の値をプロンプトの最大行数で割って余りが0ならストップという方法なのですが、プロンプトは変形できるので、変形されて最大行数を伸ばされたら終わりな上に、余りを判定するバッチファイルの書き方がわかりません
    どなたかこれらの問題を解決できる方いらっしゃいますでしょうか?

    for /l %%d in (1,1,10000) do (
    echo %%d
    if %%d%%24 == 0 pause
    )
親記事 /過去ログ119より / 関連記事表示
削除チェック/

■69795  Re[1]: バッチでのコマンドプロンプトのサイズ取得
□投稿者/ 魔界の仮面弁士 -(2014/01/29(Wed) 22:29:09)
    No69794 (OROCHI さん) に返信
    > 1.DOSプロンプトの中に収まりきらない場合、一旦停止
    DOS プロンプトでは無く、コマンドプロンプトですよね。というのはさておき。

    結果を MORE に引き渡すだけではダメでしょうか?
記事No.69794 のレス /過去ログ119より / 関連記事表示
削除チェック/

■69798  Re[2]: バッチでのコマンドプロンプトのサイズ取得
□投稿者/ OROCHI -(2014/01/30(Thu) 11:21:03)
    No69795 (魔界の仮面弁士 さん) に返信

    とりあえずこれで数値は取り込めますけど、この後出力する方法が思いつきません。そもそもテキストファイル以外でmoreって使えるんでしょうか?

    for /l %%d in (1,1,10000) do (
    set x[%%d]=%%d
    )
記事No.69794 のレス /過去ログ119より / 関連記事表示
削除チェック/

■69800  Re[3]: バッチでのコマンドプロンプトのサイズ取得
□投稿者/ OROCHI -(2014/01/30(Thu) 11:37:55)
    No69798 (OROCHI さん) に返信
    テキストファイル作って吐き出すのがいちばん簡単そうですね。
    @echo off
    rem 一旦テキスト・ファイルに取り込んでから、それをmoreで表示する

    for /l %%d in (1,1,10000) do (
    echo %%d >> 49.txt
    )

    more < 49.txt
記事No.69794 のレス / END /過去ログ119より / 関連記事表示
削除チェック/

■69802  Re[3]: バッチでのコマンドプロンプトのサイズ取得
□投稿者/ 魔界の仮面弁士 -(2014/01/30(Thu) 11:58:00)
    No69798 (OROCHI さん) に返信
    > そもそもテキストファイル以外でmoreって使えるんでしょうか?

    バッチファイル名が test.cmd だとして、それを
     test.cmd | more
    で表示すれば良いのかな、と思ってました。
    バッチファイルを起動するバッチファイルを作っても良いですし。
記事No.69794 のレス /過去ログ119より / 関連記事表示
削除チェック/

■69809  HTML内のtableタグの内容を取得するには?
□投稿者/ エリモ -(2014/01/30(Thu) 23:22:20)

    分類:[VB.NET/VB2005 以降] 

    環境 VB2010 Windows 7

    HTML内にあるtableタグ内のデータを、例えばDataTableに取り込むにはどのような方法がありますか?
    tableタグ内にはtrタグとtdタグのみで、rowspanやcolspanは含まれない、単純なテーブル構造です。
    実際には、WebBrowserに表示されたページのtable情報を取得したく、
    対象tableタグの要素をひとつずつ調べていけば出来るのですが、
    もっと簡単にできないかなと思って質問しました。
    宜しくお願いします。
親記事 /過去ログ119より / 関連記事表示
削除チェック/

■69810  Re[1]: HTML内のtableタグの内容を取得するには?
□投稿者/ WebSurfer -(2014/01/31(Fri) 00:58:45)
    No69809 (エリモ さん) に返信
    > 環境 VB2010 Windows 7
    >
    > HTML内にあるtableタグ内のデータを、例えばDataTableに取り込むにはどのような方法がありますか?
    > tableタグ内にはtrタグとtdタグのみで、rowspanやcolspanは含まれない、単純なテーブル構造です。
    > 実際には、WebBrowserに表示されたページのtable情報を取得したく、
    > 対象tableタグの要素をひとつずつ調べていけば出来るのですが、
    > もっと簡単にできないかなと思って質問しました。
    > 宜しくお願いします。

    思いつきでなのでうまく行くかどうかわかりませんが・・・

    table 要素とその子要素の HTML コードが有効な xml 形式になっているなら、
    HtmlDocument から当該 table 要素の HtmlElement を探して、OuterHtml プ
    ロパティで HTML コードを取得し、DataTable.ReadXml メソッドで DataTable
    に読み込むと言うような手段は取れませんか?

    ハズレだったらすみません。
記事No.69809 のレス /過去ログ119より / 関連記事表示
削除チェック/

■69811  Re[1]: HTML内のtableタグの内容を取得するには?
□投稿者/ WebSurfer -(2014/01/31(Fri) 01:14:29)
    No69809 (エリモ さん) に返信
    > 環境 VB2010 Windows 7
    >
    > 対象tableタグの要素をひとつずつ調べていけば出来るのですが、

    上のレスを書いてしまってから言うのも何ですが、一つずつ調べていった方が簡単かつ
    確実のような気がします。
記事No.69809 のレス /過去ログ119より / 関連記事表示
削除チェック/

<前の20件 | 次の20件>

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 >>

ヒット件数が多いので過去ログ1〜119 までの検索結果 / 過去ログ120からさらに検索→

パスワード/

- Child Tree -