どっとねっとふぁん

C# Tips And Samples
in 検索

18.データの変更のみを許可し、追加・削除を不許可とする

最新の投稿は、投稿日時: 06-24-2005, 11:23 午前 投稿者: ono です。スレッドには 0 件の返答があります。
投稿のソート: 前へ 次へ
  •  06-24-2005, 11:23 午前 90

    18.データの変更のみを許可し、追加・削除を不許可とする

    一般のユーザにはデータの追加・削除は行わせず、存在しているデータの変更のみを許可したいという場合があります。
    変更もさせたくないときはDataGridのReadOnlyプロパティをtrueにすればいいのですが、変更は許可したい、となるとどうすればいいのでしょうか。

    実はこんな場合もDataViewのプロパティをうまく設定すればいいんです。
    -------------------------------------------------------
    using System;
    using System.Windows.Forms;
    using System.Drawing;
    using System.Data;
    
    class WinSample : Form
    {
        DataGrid dg;
        DataSet ds;
    
        public static void Main()
        {
            Application.Run(new WinSample());
        }
    
        public WinSample()
        {
            this.SuspendLayout();
    
            // DataGridの生成
            dg = new DataGrid();
            dg.Anchor = AnchorStyles.Top|AnchorStyles.Bottom|AnchorStyles.Left|AnchorStyles.Right;
            dg.Location = new Point(10, 10);
            dg.Size = new Size(275, 100);
            this.Controls.Add(dg);
    
            // DataSetの生成
            ds = new DataSet();
    
            this.Text = "DataGrid Sample";
            this.Size = new Size(300, 200);
    
            Button mybutton = new Button();
            mybutton.Anchor = AnchorStyles.Bottom|AnchorStyles.Right;
            mybutton.Location = new Point(200, 130);
            mybutton.Text = "保存";
            mybutton.Click += new EventHandler(this.mb_Click);
            this.Controls.Add(mybutton);
    
            this.ResumeLayout();
        }
    
        protected override void OnLoad(EventArgs e)
        {
            ds.ReadXml("testdata1.xml");
    
            // DataViewの追加・削除を不許可にする
            DataView dv = new DataView(ds.Tables[0]);
            dv.AllowNew = false;
            dv.AllowDelete = false;
            dg.DataSource = dv;
        }
    
        private void mb_Click(object sender, EventArgs e)
        {
            ds.WriteXml("testdata2.xml", XmlWriteMode.WriteSchema);
        }
    }
    
    -------------------------------------------------------
    当然DataTableのDefaultViewを利用しても同じ設定が可能です。


    あおい情報システム株式会社
     小野修司(どっとねっとふぁん)
RSS ニュースフィードで参照
SkinName:iroha_CS2
Powered by Community Server, by Telligent Systems