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

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

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

全過去ログを検索

<< 0 >>
■6690  Re[4]: インスタンスが設定さていない
□投稿者/ なちゃ -(2006/09/22(Fri) 02:27:27)

    分類:[VC++(C++/CLI)] 

    IsDisposed だったらいけるんでは?
    っていうかDisposingは意味が違うと思う…

記事No.6595 のレス /0過去ログ6より / 関連記事表示
削除チェック/

■8721  Re[4]: Excelのプロセスが一つだけ残ってしまいます
□投稿者/ 大阪人 -(2007/10/09(Tue) 10:07:20)
    解決しました。
    参照カウントについて完全に勘違いしてました。

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

■19695  Re[18]: RS−232C通信
□投稿者/ hiro -(2008/05/27(Tue) 21:40:44)
    > むう、質問がわかりにくいっす。
    > SocketクラスでOK?

    すみません。VB6.0ではWinsockというコントロールを使っていたと思います。
    VB.NET2003ではどうしたらいいのでしょうか?

    質問が分かりにくくてすみません。
記事No.19504 のレス /過去ログ38より / 関連記事表示
削除チェック/

■28377  Re[4]: TreeViewで指定ノードをアクティブにしたい
□投稿者/ .SHO -(2008/11/25(Tue) 14:00:04)
    No28376 (.SHO さん) に返信

    > tv.SelectedNode = org;
    > いっぱつで終わりです。

    って、もしかしてTreeViewを全部作り直しちゃうから
    これじゃダメってことですかね?

    それだったら、作りなおしている最中に上手いこと
    元の位置のTreeNodeを保存する仕組みを組み込むのが
    ベストだと思います。
記事No.28364 のレス /過去ログ51より / 関連記事表示
削除チェック/

■89204  データの移動方法
□投稿者/ 夜叉丸 -(2018/11/07(Wed) 14:44:53)

    分類:[.NET 全般] 

    基本的なことですみません。

    DataTable から派生させた
    class DataTableEx : DataTable を作ったときに

    dte に dt のデータを移したいので

    DataTable dt;
    DataTableEx dte = (DataTableEx)dt;

    だと「キャストできません」のエラーが出ます。
    どうすればよいのでしょうか?
親記事 /過去ログ153より / 関連記事表示
削除チェック/

■89207  Re[1]: データの移動方法
□投稿者/ shu -(2018/11/07(Wed) 15:16:58)
    No89204 (夜叉丸 さん) に返信

    同じColumn情報を作成して
    1行づつImportRowする必要があると思います。

    DataTableExの中がどのようになっているかによると
    思いますが、場合によっては派生クラスにしない方が
    よいかもしれません。
記事No.89204 のレス /過去ログ153より / 関連記事表示
削除チェック/

■89206  Re[1]: データの移動方法
□投稿者/ ムムム -(2018/11/07(Wed) 15:08:55)
    2018/11/07(Wed) 15:09:57 編集(投稿者)

    (誤字修正しました)
    dtはDataTableExではないので、それは無理です。
    DataTableExクラスに、基底クラスDataTableのクローンを作成するメソッドを用意してはどうでしょうか。
記事No.89204 のレス /過去ログ153より / 関連記事表示
削除チェック/

■89205  Re[1]: データの移動方法
□投稿者/ 774RR -(2018/11/07(Wed) 15:08:07)
    DataTableEx に DataTable の値を移行するためには DataTableEx の拡張メンバをどうすればよいのかを
    ソースコード上明記しないと意味がないわけだけど、その意味で単にキャストしても無駄っす。
    (コンパイラがエラーにしてるのはスーパークラス→サブクラスの変換ができないためだが)

    その辺を考慮の上「どうすればよいのか」は自分で決める必要がある。
記事No.89204 のレス /過去ログ153より / 関連記事表示
削除チェック/

■89208  Re[1]: データの移動方法
□投稿者/ 魔界の仮面弁士 -(2018/11/07(Wed) 15:44:01)
    No89204 (夜叉丸 さん) に返信
    > DataTable dt;
    > DataTableEx dte = (DataTableEx)dt;

    // これは NG
    DataTable dt = new DataTable();
    DataTableEx dte = (DataTableEx)dt;

    // これは OK(ただのキャストであり、インポートではない)
    DataTable dt = new DataTableEx();
    DataTableEx dte = (DataTableEx)dt;


    > dte に dt のデータを移したいので
    だとしたら、
     DataTableEx dte = new DataTableEx();
     dte.Merge(dt, true, MissingSchemaAction.AddWithKey);
    とか。Merge の引数指定は適宜調整してください。
記事No.89204 のレス /過去ログ153より / 関連記事表示
削除チェック/

■89209  Re[2]: データの移動方法
□投稿者/ PANG2 -(2018/11/07(Wed) 15:59:35)
    Xmlシリアライズによる移行

    DataTable dt = new DataTable("mytable");
    dt.Columns.Add("key", typeof(int));
    dt.Columns.Add("value", typeof(string));
    dt.PrimaryKey = new[] { dt.Columns["Key"] };
    dt.Rows.Add(1, "A");
    dt.Rows.Add(2, "B");
    dt.AcceptChanges();

    DataTableEx dte = new DataTableEx();

    using (MemoryStream ms = new MemoryStream()) {
    dt.WriteXml(ms, XmlWriteMode.WriteSchema);
    ms.Position = 0;
    dte.ReadXml(ms);
    }
記事No.89204 のレス /過去ログ153より / 関連記事表示
削除チェック/

■89210  Re[1]: データの移動方法
□投稿者/ あみい -(2018/11/08(Thu) 10:23:19)
    そもそもキャストしてもデータはコピーされません。

    参照元が同じなので、dteのデータを変更したらdtのデータも変わります。

    DataTableExはDataTableの派生とのことですので、MergeメソッドもOverrideして、

    dte.Merge(dt);

    と書けるようにしておくとかっこいいのではないでしょうか。
記事No.89204 のレス /過去ログ153より / 関連記事表示
削除チェック/

■89211  Re[1]: データの移動方法
□投稿者/ 魔界の仮面弁士 -(2018/11/08(Thu) 10:44:21)
    2018/11/08(Thu) 11:05:00 編集(投稿者)

    No89204 (夜叉丸 さん) に返信
    > データの移動方法
    > dte に dt のデータを移したいので

    「移」ということなので、
    Copy ではなく、Move したいという意味にもとれますが、
    その場合は 全件 Merge 後に、元データを Clear すれば良さそう。


    あと気になるとすると、このあたり。

    (1) dte と dt で列定義が異なっていた場合にどうするのか

    → dte 側に列が不足していた場合、その列のデータを捨てるのか、
     列を自動追加するのか、それとも例外とするのか
    → dte 側の列が dt よりも多かった場合、
     過剰列のデータを DBNull で補うのか、それとも例外とするのか
    → dt と dte とで列の型や制約に違いがあった場合、どうするのか


    (2) 各行(DataRow)の RowState プロパティを維持するのか否か

    → Deleted な行を dte に取り込むか否か
    → Modified な行を、Modified のままとするか、Unchanged にするか
    → Added な行を、Added のままとするか、Unchanged にするか




    No89204 (夜叉丸 さん) に返信
    > DataTable から派生させた
    > class DataTableEx : DataTable を作ったときに

    ちなみに、自動実装される型付 DataSet の場合には、
     class DataTableEx : DataTable
    として生成される実装と、
     class DataTableEx : TypedTableBase<DataTableExRow>
    として生成される実装とがあります。


    利用者視点では後者の方が便利ですが(LINQ しやすい)、
    テーブルクラスだけでなく行クラスも用意しなければならない分、
    手動実装する場合は、ちょっと手間かも。(自動実装なら良いのですが)
記事No.89204 のレス /過去ログ153より / 関連記事表示
削除チェック/

■89228  Re[1]: データの移動方法
□投稿者/ にゃるら -(2018/11/09(Fri) 09:40:12)
    No89204 (夜叉丸 さん) に返信
    > 基本的なことですみません。
    >
    > DataTable から派生させた
    > class DataTableEx : DataTable を作ったときに
    >
    > dte に dt のデータを移したいので
    >
    > DataTable dt;
    > DataTableEx dte = (DataTableEx)dt;
    >
    > だと「キャストできません」のエラーが出ます。
    > どうすればよいのでしょうか?

    暗黙的なキャストの実装をDataTableExさんに追加すれば出来るようになるとは思います。

    となると、結局は既にみなさんが書かれているようにデータをコピーするような処理を
    何かしら自分で書くしかないということだと思います。

    暗黙的なキャストは値型でないと違和感がある、ということでしたらコピーコンストラクタ
    での実装されてはいかがでしょうか。
記事No.89204 のレス /過去ログ153より / 関連記事表示
削除チェック/

■94707  WebBrowserの今後
□投稿者/ Scod -(2020/05/08(Fri) 15:47:03)

    分類:[.NET 全般] 

    VS2008の頃から、WinFormでWebBrowserを使用したアプリを作成しています。
    ここで気になることがあります。

    マイクロソフトのブラウザがIEからEdgeに代わり、
    最近ではIEをサポートしない(またはその予定)というサイトも出てきました。
    この流れで、WebBrowserは今後も使用可能なのでしょうか?

    今までは、IEのバージョンアップにともない、
    使用するWebBrowserのIEバージョンをエミュレートしていましたが、
    IEが廃止になった場合、Edgeのエンジンを搭載したWebBrowserが登場するのでしょうか?
    それとも、今までと同様、EdgeモードでWebBrowserを使用可能なのでしょうか?

    ちょっとここら辺が分からなかったので質問しました。
親記事 /過去ログ164より / 関連記事表示
削除チェック/

■94738  Re[5]: DataTableの更新について
□投稿者/ WebSurfer -(2020/05/11(Mon) 22:36:52)
    No94736 (tomo さん) に返信

    >>では、あなたの考える「良いコード」というのはどういうものなんですか?
    >>
    >>私の提案以上に、すべての面にわたって「良いコード」があれば教えてほしいものです。
    >>
    >>ただし、すべての面と言っても、あなたの気持ちの問題は別の話ですよ。
    >
    > インスタンスを1つだけ生成しシートを切り替えるごとにデータをリフレッシュして乗せ換えれば複数インスタンスを生成せずにメモリを節約できるのはないかと考えております。

    それがあなたの考える「良いコード」だと思うならここで聞くまでもなくそのように実装すればいい
    と思うのですが・・・

    なぜそうしないのですか? 気持ちの問題も含めて全て解決できるのでは?
記事No.94725 のレス /過去ログ164より / 関連記事表示
削除チェック/

■95852  Re[3]: C#+WPF, 封筒の表書き
□投稿者/ S.Kos -(2020/10/04(Sun) 14:26:44)
    自己解決した・・・ようです。

    1 ダメもとで、プリンタドライバを入れ換え、
    2 プリンタもPCも、いったん電源を落として
    3 再起動したら、

    いまのところ、180度回転して書き出しています。

    お騒がせしました。閉じます。
記事No.95849 のレス /過去ログ166より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -