Bir winform projesi için kullanıcı yönetimi paneli oluşturmak istiyorum. Temel olarak dataGridView kontrolünün kolonlarından birinde combobox olacak ve buradan kullanıcının yetkisini Admin, User, Client olarak 3 farklı yetki türü olacak fakat DataError event'i üzerinden hata alıyorum.

dataGridView'de combobox bulundurmak için grid üzerine sağ tıklayıp "Edit Columns" seçeneğine tıkladıktan sonra açılan pencerede "Role" isimli kolonumu seçtikten sonra ColumnType property'sini DataGridViewComboBoxColumn olrak değiştirdim. Akabinde de "Admin", "User", "Client" rollerini Items isimli property'si içerisinde kaydettim.

alt text

Bu tür projelerde kullanıcı yetkilerini belirlerken önerebileceğiniz veritabanı tasarımı ve programlama hususunda nasıl bir yaklaşımda bulunmayı önerirsiniz?

Aşağıda windows form tasarımımı, c# kodumu ve hata mesajlarımı paylaşıyorum. Yardımcı olabilirseniz sevinirim.

alt text alt text alt text

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace XXX
{
    public partial class UserManager : Form
    {
        public UserManager()
        {
            InitializeComponent();
        }

        private void UserManager_Load(object sender, EventArgs e)
        {
            panel1.BackColor = Color.FromArgb(100, 88, 55, 55);

            // TODO: This line of code loads data into the 'xXXDataSet.users' table. You can move, or remove it, as needed.
            this.usersTableAdapter.Fill(this.xXXDataSet.users);

        }

        private void button3_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void button1_Click(object sender, EventArgs e)
        {

        }

        private void dataGridView1_DataError(object sender, DataGridViewDataErrorEventArgs anError)
        {

            MessageBox.Show("Error happened " + anError.Context.ToString());

            if (anError.Context == DataGridViewDataErrorContexts.Commit)
            {
                MessageBox.Show("Commit error");
            }
            if (anError.Context == DataGridViewDataErrorContexts.CurrentCellChange)
            {
                MessageBox.Show("Cell change");
            }
            if (anError.Context == DataGridViewDataErrorContexts.Parsing)
            {
                MessageBox.Show("parsing error");
            }
            if (anError.Context == DataGridViewDataErrorContexts.LeaveControl)
            {
                MessageBox.Show("leave control error");
            }

            if ((anError.Exception) is ConstraintException)
            {
                DataGridView view = (DataGridView)sender;
                view.Rows[anError.RowIndex].ErrorText = "an error";
                view.Rows[anError.RowIndex].Cells[anError.ColumnIndex].ErrorText = "an error";

                anError.ThrowException = false;
            }
        }
    }
}

soruldu: 29 Eyl '13, 11:27

Timur%20Aykut%20YILDIRIM's gravatar image

Timur Aykut YILDIRIM
371325047
cevap kabul oranı: 14%

değiştirildi: 29 Eyl '13, 16:05

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183


Merhabalar acaba sorunu çözdünüz mü ?

permanent link

cevaplandı: 28 Haz, 06:50

bluewanted's gravatar image

bluewanted
01
cevap kabul oranı: 0%

söz konusu comboBox gridView içinde olduğundan dolayı misal şöyle bir şey yaparsan tam emin olamamakla beraber sanıyorum ki çalışır..

gridView1.comboBox1.ColumnType = "bla bla bla foo";

umarım yardımcı olur.

permanent link

cevaplandı: 14 Tem, 21:35

ercet00ilk's gravatar image

ercet00ilk
994435662
cevap kabul oranı: 11%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×238
×16
×13
×3

Soruldu: 29 Eyl '13, 11:27

Görüntüleme: 1,307 kez

Son güncelleme: 14 Tem, 21:35

powered by BitNami OSQA