簡體   English   中英

刪除組合框項目C#

[英]Remove combo box item c#

我試圖刪除檢查數據庫中的“管理員”文本后的組合框項目列表“管理員”文本,如果找到了,那么它會簡單地從下拉列表菜單中刪除。

現在,即使數據庫中有“管理員”文本,組合框仍將“管理員”文本添加到項目列表中。

某個地方錯了嗎?

這是我正在使用的代碼:

public partial class Registration: Form
{

bool _isCheckedEmail = false;

void Registration_Load(object sender, EventArgs e)
        {
            ClearTextBoxes();

            SystemManager.CheckType("Administrator");

            if (SystemManager._isUsed != true)
            {
                this.comboBox1.Items.Add("Administrator");
            }

            this.comboBox1.Items.Add("Member");

            this.comboBox1.SelectedIndex = 0;

            SystemManager._isCheckedDisplayName = false;
            _isCheckedEmail = false;

            this.button1.Enabled = false;
            this.button4.Enabled = false;
        }
}

這是“ SystemManager”類:

public class SystemManager
{

public static bool _isUsed = false;

public static void CheckType(string _value1)
        {
            using (OleDbConnection connection = new OleDbConnection(SystemManager.connectionString))
            {
                string query = "SELECT COUNT(*) FROM [Member] WHERE [UserType] = @UserType";

                connection.Open();

                using (OleDbCommand command = new OleDbCommand(query, connection))
                {
                    command.Parameters.Add("@UserType", OleDbType.VarChar);
                    command.Parameters["@UserType"].Value = _value1;

                    using (OleDbDataReader reader = command.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            if (_count > 0)
                            {
                                _isUsed = true;
                            }

                            else
                            {
                                _isUsed = false;
                            }
                        }

                        reader.Close();
                    }
                }

                connection.Close();
            }

        }
}

這是數據庫(我正在將其上傳到保管箱):

鏈接

謝謝。

1

您可以通過reader[0]引用結果對象。

using (OleDbDataReader reader = command.ExecuteReader())
{
    while (reader.Read())
    {
        Integer.TryParse(reader[0].ToString(), _count);
        if (_count > 0)
        {
            _isUsed = true;
        }

        else
        {
            _isUsed = false;
        }
    }
    reader.Close();
}

2

使用OleDbDataReader.HasRows屬性檢查類型是否存在。

http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbdatareader.hasrows(v=vs.110).aspx

string query = "SELECT * FROM [Member] WHERE [UserType] = @UserType";

connection.Open();

using (OleDbCommand command = new OleDbCommand(query, connection))
{
    command.Parameters.Add("@UserType", OleDbType.VarChar);
    command.Parameters["@UserType"].Value = _value1;

    using (OleDbDataReader reader = command.ExecuteReader())
    {
        while (reader.Read())
        {
            if (reader.HasRows)
            {
                _isUsed = true;
            }

            else
            {
                _isUsed = false;
            }
    }
    reader.Close();
}

這是上述問題的解決方案:

    void Registration_Load(object sender, EventArgs e)
    {
        SystemManager.ClearTextBoxes(this.Controls);

        if (SystemManager.CheckType("Administrator") != true)
        {
            this.comboBox1.Items.Add("Administrator");
        }

        this.comboBox1.Items.Add("Member");

        this.comboBox1.SelectedIndex = 0;

        SystemManager._isCheckedDisplayName = false;
        _isCheckedEmail = false;

        this.button1.Enabled = false;
        this.button4.Enabled = false;
    }

       public static bool CheckType(string _value1)
        {
            using (OleDbConnection connection = new OleDbConnection(SystemManager.connectionString))
            {
                string query = "SELECT COUNT(*) FROM [Member] WHERE [UserType] = @UserType";

                connection.Open();

                using (OleDbCommand command = new OleDbCommand(query, connection))
                {
                    command.Parameters.Add("@UserType", OleDbType.VarChar);
                    command.Parameters["@UserType"].Value = _value1;

                    _count = (int)command.ExecuteScalar();

                    connection.Close();
                }

            }

            return _count > 0;
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM