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

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

記事リスト ( )内の数字はレス数
Nomal参照dllへの文字列引数をutf8で渡したい。(13) | NomalFILE.COPYでIOExceptionエラーが出る(11) | Nomalリストを別フォームに渡す方法(9) | Nomal例外発生した場合に変数をcatchに渡したい(9) | NomalCode128でバーコードが読み取れない(8) | Nomalモードレスフォーム Warning IDE0067を回避したい(7) | NomalIE11では表示されるが、.netのWebBrowserでは、表示されないHPを表示する方法(7) | Nomal数字だけで構成されてるCSVフィールドが自動的に数値として解釈される(7) | NomalフォームコントロールへのDataBindingsでプロパティが相互反映されない(7) | Nomal起動ディスプレイの指定方法について(6) | NomalListBoxにデータが表示されない(6) | Nomal文字列を8bit に戻してから UTF-8 に変換する方法(6) | NomalSQLServerテーブル内容をDataGridViewに表示するコードについて(6) | Nomal文字列構造体のListのソート(6) | NomalWebBrowser Controlを使って、任意の値を取得(5) | Nomalこんな演算子初めて見ました。(5) | NomalRichTextBoxで入力文字の自動折り返しを止めたい(5) | NomalあるWindows10PCでビルドしたEXEがW8.1以下で実行エラー(5) | Nomalポルトガル語の登録(5) | Nomaloo4oのAddTableをADOに移行したい(5) | NomalDeclare宣言するdllと参照追加をするdllの区別(4) | NomalVS2017で作成されたDLLをVS2005で作成されたAPで使用する方法(4) | Nomalフォルダ内の全ての容量を取得したい(4) | Nomal共変性と反変性ってこういうこと?(4) | Nomalプロセスからウインドウを取得(4) | NomalNewの使い方間違ってますか?(4) | Nomalユーザーコントロール内のテキストボックスのmodifiedプロパティ(4) | NomalJOIN操作の構文エラー(4) | Nomal動的にプロパティや変数の値の取得(4) | NomalVB6 ほかのアプリケーションを起動し そのアプリケーションは終了させる方法(4) | Nomalスクロールバーが出た時に高さを変えたい(4) | NomalDatagridViewの行高さ変更について(4) | NomalLINQのメソッド構文の書き方(3) | Nomalvb.net+SQLiteで複数データベースファイルへのトランザクション方法(3) | Nomalジェネリック型インターフェースを使った変数を扱いたい(3) | NomalProcess.WaitForExitで正常に動作しない?(3) | NomalPictureBox.Locationのキャンセル(3) | NomalCatch時のex.StackTraceの情報(3) | NomalVisualStudioでマクロ(3) | NomalOracleDataAccess を参照したプログラムでデバッグモードが機能しなくなる(3) | NomalVisualStudioでExcelのVSTO開発(3) | NomalVB.NETでCSVを読み込む際にSQL文を使いたい(3) | NomalDrawImage でメモリ不足エラー(3) | NomalVb.netからAccessへの接続について(3) | Nomal令和の日付への対応(3) | NomalHTTP 417エラーを発生させるためのIIS設定はどうすればよいか(3) | NomalDrawString前のFillRectangle有無により文字の太さが違う理由について教えて下さい(3) | NomalPIctureBox同士を論理合成したい(3) | Nomalデータセット定義ファイルからDataTable(3) | Nomalネットの画像の複数枚を重ね合わせたい(3) | NomalDataGridViewで検索をかける方法(3) | NomalDataGridViewの選択時の色を透明にしたい(3) | NomalWebBrowserでWebページからのメッセージ(3) | NomalASP.NETから呼ばれているかどうか判定する方法(3) | NomalCA2213の警告が消えません(3) | NomalC# 現在のコンテキスト内にxxxという文字は存在しませんと出ます(3) | NomalTaskクラスを.NET Framework 2.0で実現させる方法(2) | NomalWebBrowser Control foreachで値が消える(2) | NomalEditボックスに簡体字をセットする方法(2) | NomalWebClientが上手く動かない(2) | Nomalフォーム外のカーソルの変更(2) | Nomalラムダ式の勉強中(2) | NomalRichTextBoxで入力文字の自動折り返しを止めたい(2) | NomalC#をVBに変換(2) | NomalWebClientで、短期間にDownloadStringAsyncを実行したい(2) | NomalマウスのないOSでマウスカーソルの表示(2) | NomalToolStripMenuItemにShortcutKeysを指定した際の、元のコントロールを取得する方法(2) | NomalMouseEventArgsのカレント座標(2) | Nomalリッチテキストボックスでの字間の調整(2) | NomalVC++ → VB.Netに変換時に文法エラー(2) | NomalSQL-Server Compact 4.0が表示されない(2) | Nomalバーコードの数字を非表示にしたい(2) | Nomal自作したアプリの発行元を明記したい(2) | NomalSystem.Threading.Thread.Sleep()と変数(2) | NomalDataGridView 行の背景色の設定(2) | NomalDatagridviewのクリア(2) | NomalnumericUpDwonコントロールのvalue(2) | NomalVisual Studio DataTableの値のアクセスの仕方(2) | NomalDataTableの構造が同じか調べるメソッド(2) | NomalRejectChangesについて(2) | NomalPC機種によってスタートアップ画面が中央から左上にずれる、Fontがおかしくなる。(2) | Nomalタスクスケジュール登録時の例外メッセージ(2) | Nomal管理者モードでクリック(2) | NomalVB2017でのインストーラ作成時のエラーについて(2) | NomalMicrosoft Azure OCRのサンプルコード実行時エラー(2) | Nomalデータバインド時のDataGridViewのカスタムソート(2) | NomalObject型からDecimalへの変換(2) | Nomal擬似言語をVBのプログラミングに変換(2) | Nomalユーザーコントロールのプロパティが保存されない(2) | NomalWindows10(1803)からGetHostEntryでipv4が取得出来ない場合がある(2) | Nomal自分自身を呼び出すのはOKですか(1) | NomalList型でエラーが起きてしまい・・・(1) | NomalLINQの拡張メソッドの定義(1) | NomalWebRequest でメモリが解放されない(1) | NomalFunction プロシージャからの文字選択(1) | NomalRDP接続でのネットワーク帯域制限(0) | Nomal必須コンポーネントの一覧に追加したい(0) | NomalApp.configのMy.Application.Log設定で使用できない属性が出る(0) | Nomalvb2010を使用したmicrosoft Wordの任意の行の削除(0) | NomalWinFormsでWindows10のカメラアプリと連携したい(0) |



■記事リスト / ▼下のスレッド
■34193 / 親記事)  Datagridviewのクリア
□投稿者/ さだきち 一般人(1回)-(2019/03/15(Fri) 22:53:03)
  • アイコン環境/言語:[VB.NET] 
    分類:[.NET] 

    Datagridviewにdatatableをバインドしています。

    内容をクリアするとき
    Datatable.rows.clearするか
    New datatableで新たにテーブルを作成してバインドするか
    どちらのほうが良いでしょうか?

    今見ている仕組みはどちらも混在してるのですが
    前任者がいないためどう使い分けてるのか不明の状態です。
    (使い分けに理由がない可能性もあります)
違反を報告
引用返信

▽[全レス2件(ResNo.1-2 表示)]
■34194 / ResNo.1)  Re[1]: Datagridviewのクリア
□投稿者/ 魔界の仮面弁士 大御所(1219回)-(2019/03/18(Mon) 10:20:28)
  • アイコンNo34193に返信(さだきちさんの記事)
    > 内容をクリアするとき
    > Datatable.rows.clearするか
    > New datatableで新たにテーブルを作成してバインドするか
    > どちらのほうが良いでしょうか?

    「何のためにクリアするのか」にもよると思います。

    DataGridView1.AutoGenerationColumn が True/False のいずれなのかとか、
    非バインド列の有無によっても変わってきそうですし、
    まるっきり別の構造のテーブルを割り当てる場合は、
    .Rows.Clear() では十分では無いでしょう。

    列定義が変わるわけでは無いのだとしたら、
    自分ならば、New DataTable() を割り当てなおすことはしないですね。
    DataTable1.Clear() あるいは
    DataTable1.Rows.Clear() にします。

    # .Clear と .Rows.Clear は、.NET 1.x では同じ意味でしたが、
    # .NET 2.0 以降は微妙に実装が異なっています。


    要件によっては、BindingSource で Type を渡すようにするとか、
    DataView でフィルターを変えて見えなくするという事もあるかも。
違反を報告
引用返信
■34198 / ResNo.2)  Re[2]: Datagridviewのクリア
□投稿者/ さだきち 一般人(2回)-(2019/03/22(Fri) 14:42:28)
  • アイコンNo34194に返信(魔界の仮面弁士さんの記事)

    魔界の仮面弁士さま、お返事ありがとうございます。

    改めてソースを見てみると、
    データの内容のみをクリアしているようですが、
    両方の方法が混在しているようです。
    (DataGridViewの書式は保持、非バインド列もなし)

    今後新規で作成する場合は、
    原則clearする方向で検討しようと思います。
    ありがとうございました。


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

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



■記事リスト / ▼下のスレッド / ▲上のスレッド
■34166 / 親記事)  numericUpDwonコントロールのvalue
□投稿者/ gese 一般人(1回)-(2019/02/26(Tue) 18:24:34)
  • アイコン環境/言語:[c#6.0] 
    分類:[.NET] 

    NumericUpDownコントロールのValueプロパティに値をセットしようとしました。

    Int16型の値はValueプロパティに登録されましたが、
    他の3つはValueプロパティに何も入らずに「0」と表示されてしまいます。
    なぜでしょうか?

    Int16 atai1 = 100;
    numericUpDown1.Value = atai1;

    Int32 atai2 = 200;
    numericUpDown1.Value = atai2;

    Int64 atai3 = 300;
    numericUpDown1.Value = atai3;

    int atai4 = 400;
    numericUpDown1.Value = atai4;

    こちらのサイトにプロパティ値がDecimalになっていると書いてあるので、
    キャストしてみましたが、上と同様にInt16型以外はValueが「0」になってしまいます。こちらもなぜキャストができないのでしょうか?キャストする方法はあるんでしょうか?

    https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.numericupdown.value?view=netframework-4.7.2#System_Windows_Forms_NumericUpDown_Value
    //Int16 atai1 = 100;
    //numericUpDown1.Value = (decimal)atai1;

    //Int32 atai2 = 200;
    //numericUpDown1.Value = (decimal)atai2;

    //Int64 atai3 = 300;
    //numericUpDown1.Value = (decimal)atai3;

    //int atai4 = 400;
    //numericUpDown1.Value = (decimal)atai4;
違反を報告
引用返信

▽[全レス2件(ResNo.1-2 表示)]
■34167 / ResNo.1)  Re[1]: numericUpDwonコントロールのvalue
□投稿者/ 魔界の仮面弁士 大御所(1206回)-(2019/02/26(Tue) 18:34:06)
  • アイコン2019/02/26(Tue) 21:35:19 編集(投稿者)

    No34166に返信(geseさんの記事)
    > 環境/言語:[c#6.0] 
    6.0 ということは、最低でも Visual Studio 2015 以上ということですね。


    > NumericUpDownコントロールのValueプロパティに値をセットしようとしました。
    Value プロパティは decimal 型ですので、
    decimal 型の値をセットするべきではありますが、
    整数型から decimal 型への変換は暗黙的に行われるので、
    整数値を代入したとしても、本来は問題無いはずです。


    > 他の3つはValueプロパティに何も入らずに「0」と表示されてしまいます。
    まずは numericUpDown1 の Maximum プロパティを確認してみてください。
    (初期値は 100 です)

    たとえば、Maximum = 100 のままだと、100 よりも大きい値は
    代入できませんので、その場合、Value 値が書き換わることなく、
    直前の値のままになってしまっているのではないでしょうか。


    本来であれば、Minimum〜Maximum の範囲外の値を Value にセットすると
    例外で停止するはずですが、64bit 環境(かつ Windows 8.1 未満)において、
    Form の Load イベント内に記述していた場合、例外が発生しても
    Visual Studio 側で拾えないので、例外を見落としてしまっているのかも。



    > キャストする方法はあるんでしょうか?

    キャストの仕方はそれで正しいです。
    ちなみに末尾に "m" または "M" を付けた場合、decimal 型のリテラルを意味します。

     numericUpDown1.Value = 5.67m;

    小数値を指定する場合は、DecimalPlaces プロパティの設定も忘れずに。



    蛇足ですが、decimal では桁数も管理されるようになっています。
    そのため下記の 2 つは、数値としては同じ値ながらも、
    ToString 時の結果が異なることになります。

    decimal a = 10.0m;
    decimal b = 10.0000m;
    label1.Text = a.ToString();
    label2.Text = b.ToString();
違反を報告
引用返信
■34168 / ResNo.2)  Re[2]: numericUpDwonコントロールのvalue
□投稿者/ gese 一般人(2回)-(2019/02/27(Wed) 09:54:03)
  • アイコン
    >6.0 ということは、最低でも Visual Studio 2015 以上ということですね。
    
    環境はWin7のVS 2015です。
    
    >まずは numericUpDown1 の Maximum プロパティを確認してみてください。
    
    ここが問題でした。Maximumが100でした・・・
    
    >本来であれば、Minimum〜Maximum の範囲外の値を Value にセットすると
    >例外で停止するはずですが、64bit 環境(かつ Windows 8.1 未満)において、
    >Form の Load イベント内に記述していた場合、例外が発生しても
    >Visual Studio 側で拾えないので、例外を見落としてしまっているのかも。
    
    おっしゃる通り64ビットの環境でWin7です。そしてLoad イベントに書いてあります。
    試しにMaximumを1000にして以下のコードを実行したら、ボタン押下時に例外が発生しました。
    
       private void Form1_Load(object sender, EventArgs e)
            {
                Int64 atai3 = 3000;
                numericUpDown1.Value = (decimal)atai3;
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                Int64 atai3 = 4000;
                numericUpDown1.Value = (decimal)atai3;
            }
    
    >ちなみに末尾に "m" または "M" を付けた場合、decimal 型のリテラルを意味します。
    
    なるほど、これは知りませんでした。
    
    勉強になりました。ありがとうございます。

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

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



■記事リスト / ▼下のスレッド / ▲上のスレッド
■34164 / 親記事)  Visual Studio DataTableの値のアクセスの仕方
□投稿者/ メンバー 一般人(1回)-(2019/02/26(Tue) 17:39:27)
  • アイコン環境/言語:[c#] 
    分類:[.NET] 

    Visual Studio2015のウォッチウィンドウでDataTableの値を探しています。
    
    DataSet ds = new DataSet();
    DataTable dt = new DataTable();
    
    // 5列定義します。
    dt.Columns.Add("A");
    dt.Columns.Add("B");
    dt.Columns.Add("C");
    dt.Columns.Add("D");
    dt.Columns.Add("E");
    
    // 4行追加します。
    for (int i = 0; i < 4; i++)
    {
        DataRow row = dt.NewRow();
        row["A"] = i;
        dt.Rows.Add(row);
    }
    
    // DataSetにdtを追加します。
    ds.Tables.Add(dt);
    
    dt.TableName = "Table1";
    
    Console.WriteLine(ds.Tables["Table1"].Rows[0]["A"].ToString());
    Console.WriteLine(ds.Tables["Table1"].Rows[1][0].ToString());
    Console.WriteLine(ds.Tables["Table1"].Rows[2].ItemArray[0].ToString());
    DataRow row2 = ds.Tables["Table1"].Rows[3];
    Console.WriteLine(row2["A"].ToString());
    
    Rowsオブジェクトの中をみてもRowsオブジェクト直下にItemArrayも表示されていません。
    わからないのが、なぜRows[0]["A"]、Rows[1][0]、Rows[2].ItemArray[0]で値にアクセスできるんでしょうか?
    
    

違反を報告
引用返信

▽[全レス2件(ResNo.1-2 表示)]
■34165 / ResNo.1)  Re[1]: Visual Studio DataTableの値のアクセスの仕方
□投稿者/ 魔界の仮面弁士 大御所(1205回)-(2019/02/26(Tue) 18:21:20)
  • アイコン2019/02/26(Tue) 22:10:07 編集(投稿者)

    No34164に返信(メンバーさんの記事)
    > 環境/言語:[c#] 

    誤: c#
    正: C#


    細かいことですが、日本工業規格 JIS X 3015 において、
    『C#は,LATIN CAPITAL LETTER C (U+0043)の次に NUMBER SIGN # (U+0023)を書く。』
    と明記されていますので、一応指摘まで。



    > Visual Studio2015のウォッチウィンドウでDataTableの値を探しています。

    ウォッチウィンドウやローカルウィンドウで、
    変数 ds や dt を表示させているという意味でしょうか。

    一時停止中に、ウォッチウィンドウの 虫眼鏡 アイコンをクリックすれば、
    DataTable の内容をグリッド表示できますね。


    > Rowsオブジェクトの中をみてもRowsオブジェクト直下にItemArrayも表示されていません。

    Rows プロパティが返すオブジェクトは、「DataRow クラス」のインスタンスではなく、
    DataRow のコレクションにあたる「DataRowCollection クラス」のインスタンスだからです。


    DataTableCollection tables = ds.Tables;
    DataTable table1 = tables["Table1"];
    DataRowCollection rows = table1.Rows;
    DataRow row0 = rows[0];
    object[] items = row0.ItemArray;
    dynamic data1 = row0["A"];
    dynamic data2 = items[0];



    > Console.WriteLine(ds.Tables["Table1"].Rows[0]["A"].ToString());

    折角 DataTable 型の変数 dt を保持しているのですから、
     Console.WriteLine(dt.Rows[0]["A"]);
    のようにした方が短く書けますよ。



    > DataSet ds = new DataSet();
    > DataTable dt = new DataTable();
    > dt.Columns.Add("A");
    >   :
    > ds.Tables.Add(dt);
    > dt.TableName = "Table1";

    上記の処理は、
     DataSet ds = new DataSet();
     DataTable dt = ds.Tables.Add("Table1");
     dt.Columns.Add("A");
       :
    のように短く書けます。


    このとき、「dt.Columns.Add("A");」という処理は
    string 型の列を追加することを意味しています。

    ※「dt.Columns.Add("A", typeof(string));」と同義。

    ですから、
    > row["A"] = i;
    のように、int 型の値を代入するのではなく、
     row["A"] = i.ToString();
    のように、string 型の値を代入することが望ましいです。

    もしも int 値を保存するための列なのであれば、
     dt.Columns.Add("A", typeof(int));
    としておきましょう。


    > // 4行追加します。
    追加し終わったら
     ds.AccesptChanges();
    を呼んでおくと良いでしょう。

    データテーブルの各行は、
     「追加された行」「未編集の行」
     「編集済み行」「削除された行」
    といった状態を管理しているものだからです。


    // 「追加された行」を確定して「未編集の行」にする
    dt.AcceptChanges();

    // 値が 1 から "100" へと編集された
    dt.Rows[0]["A"] = "100";

    // 現在の値 "100" を出力
    Console.WriteLine(dt.Rows[0]["A"]);

    // 変更前の値 1 が出力される
    Console.WriteLine(dt.Rows[0]["A", DataRowVersion.Original]);
違反を報告
引用返信
■34199 / ResNo.2)  Re[1]: Visual Studio DataTableの値のアクセスの仕方
□投稿者/ shu 大御所(485回)-(2019/03/30(Sat) 07:21:18)
  • アイコンNo34164に返信(メンバーさんの記事)
    >
    > Rowsオブジェクトの中をみてもRowsオブジェクト直下にItemArrayも表示されていません。
    > わからないのが、なぜRows[0]["A"]、Rows[1][0]、Rows[2].ItemArray[0]で値にアクセスできるんでしょうか?
    >
    RowsはDataRowの集まりであるのでRowsがItemArrayを持っているわけではありません。
    Rows[0]とするとDataTableの1行目のDataRowを表すのでこのように値を取得することが出来ます。
    Rows[0]["A"]
    と考えるのではなく
    DataRow row = rows[0];
    ・・・ row["A"] ・・・;
    と考えれば分かりやすいかと思います。



違反を報告
引用返信

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



■記事リスト / ▼下のスレッド / ▲上のスレッド
■34156 / 親記事)  DataTableの構造が同じか調べるメソッド
□投稿者/ ナンバー 一般人(1回)-(2019/02/22(Fri) 17:43:48)
  • アイコン環境/言語:[C#5] 
    分類:[.NET] 

    DataTableが2つあります。このDataTable同士の構造が同じかどうかを簡単に
    判断するメソッドはあるでしょうか?

    DataTableの中身は置いておいて、構造のみ同じかどうかを簡単にしる
    手立てがあればお教え頂けないでしょうか。
違反を報告
引用返信

▽[全レス2件(ResNo.1-2 表示)]
■34157 / ResNo.1)  Re[1]: DataTableの構造が同じか調べるメソッド
□投稿者/ 魔界の仮面弁士 大御所(1201回)-(2019/02/22(Fri) 18:55:47)
  • アイコンNo34156に返信(ナンバーさんの記事)
    > DataTableが2つあります。このDataTable同士の構造が同じかどうかを簡単に
    > 判断するメソッドはあるでしょうか?

    こんなのはどうでしょう。

    var ms1 = new MemoryStream();
    var ms2 = new MemoryStream();
    dataTable1.WriteXmlSchema(ms1);
    dataTable2.WriteXmlSchema(ms2);

    bool isSameSchema = ms1.ToArray().SequenceEqual(ms2.ToArray());



    > DataTableの中身は置いておいて、構造のみ同じかどうかを簡単にしる

    比較すべき「構造」情報に、TableName プロパティの差を
    含めれるかどうかも検討する必要がありそうです。

    たとえば、下記の 2 つを同じものとみなすか否か。

    var dt1 = new DataTable("Employees") { Columns = { new DataColumn("Id"), new DataColumn("Name"), new DataColumn("EMail") } };
    var dt2 = new DataTable("Customers") { Columns = { new DataColumn("Id"), new DataColumn("Name"), new DataColumn("EMail") } };
違反を報告
引用返信
■34160 / ResNo.2)  Re[2]: DataTableの構造が同じか調べるメソッド
□投稿者/ ナンバー 一般人(3回)-(2019/02/25(Mon) 16:28:19)
  • アイコン比較できました。ありがとうございます。
解決み!
違反を報告
引用返信

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



■記事リスト / ▲上のスレッド
■34130 / 親記事)  RejectChangesについて
□投稿者/ samba 一般人(1回)-(2019/02/12(Tue) 18:00:37)
  • アイコン環境/言語:[4.5,win 10 visual studio 2017] 
    分類:[.NET] 

    下記のようなDataTableがあります。
    各行に対して、追加、削除、値変更などをしています。

    dataset.Tables["Table1"].Rows[2].Delete();を実行してから、
    この行のみDeleteをキャンセルしたくない場合があります。

    RejectChanges()を行うと、変更した部分が全部取り消しになってしまいます。
    特定の行をDelete()してしまったあとに、その行だけ復活させたいと
    いった場合はどのようにおこなえばよいでしょうか?

    DataSet dataset = new DataSet();
    DataTable dt = new DataTable("Table1");

    // 列を定義します。
    dt.Columns.Add("商品番号");
    dt.Columns.Add("商品名");
    dt.Columns.Add("価格");

    DataRow row = null;

    // 商品を追加します。
    row = dt.NewRow();
    row["商品番号"] = "S0001";
    row["商品名"] = "あんぱん";
    row["価格"] = 100;
    dt.Rows.Add(row);

    row = dt.NewRow();
    row["商品番号"] = "S0002";
    row["商品名"] = "メロンパン";
    row["価格"] = 105;
    dt.Rows.Add(row);

    row = dt.NewRow();
    row["商品番号"] = "S0003";
    row["商品名"] = "カレーパン";
    row["価格"] = 110;
    dt.Rows.Add(row);

    row = dt.NewRow();
    row["商品番号"] = "S0004";
    row["商品名"] = "いちごジャムパン";
    row["価格"] = 115;
    dt.Rows.Add(row);

    row = dt.NewRow();
    row["商品番号"] = "S0005";
    row["商品名"] = "チョココロネ";
    row["価格"] = 120;
    dt.Rows.Add(row);

    row = dt.NewRow();
    row["商品番号"] = "S0006";
    row["商品名"] = "クロワッサン";
    row["価格"] = 125;
    dt.Rows.Add(row);

    // DataSetにdtを追加します。
    dataset.Tables.Add(dt);
    dataset.Tables["Table1"].AcceptChanges();

    // メロンパンの価格を変更します。
    dataset.Tables["Table1"].Rows[1]["価格"] = 110;

    // クリームパンを追加します。
    DataRow datarow = dataset.Tables["Table1"].NewRow();

    datarow["商品番号"] = "S0007";
    datarow["商品名"] = "クリームパン";
    datarow["価格"] = "130";

    dataset.Tables["Table1"].Rows.Add(datarow);

    // カレーパンを削除します。
    dataset.Tables["Table1"].Rows[2].Delete();


    // 元に戻します。
    dataset.Tables["Table1"].RejectChanges();
違反を報告
引用返信

▽[全レス2件(ResNo.1-2 表示)]
■34131 / ResNo.1)  Re[1]: RejectChangesについて
□投稿者/ 魔界の仮面弁士 大御所(1195回)-(2019/02/12(Tue) 18:36:00)
  • アイコンNo34130に返信(sambaさんの記事)
    > dataset.Tables["Table1"].Rows[2].Delete();を実行してから、
    > この行のみDeleteをキャンセルしたくない場合があります。
    > RejectChanges()を行うと、変更した部分が全部取り消しになってしまいます。

    DataTable.RejectChanges ではなく
    DataRow.RejectChanges を呼び出しましょう。
違反を報告
引用返信
■34132 / ResNo.2)  Re[2]: RejectChangesについて
□投稿者/ samba 一般人(2回)-(2019/02/13(Wed) 11:06:46)
  • アイコンありがとうございます!
解決み!
違反を報告
引用返信

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






Mode/  Pass/


- Child Tree -