2

私のプロジェクトには、active、in active、working の 3 つの値を持つコンボ ボックス「ステータス」があります。要件に従って、選択した値は整数として表す必要があるため、選択した値のインデックスが格納されるようにコードを記述しました。問題は、ステータスの更新中にコンボボックスから値を選択しようとすると、リストビューに値として表示されるはずです。0 を選択すると、アクティブと表示され、1 は非アクティブと表示され、2 は動作中と表示されます。これまでに値を取得するために使用したコードは以下のとおりです。その整数の値を取得するのを手伝ってください。

private void btnUpdateSupport_Click(object sender, EventArgs e)
        {
            SqlConnection con = Helper.getconnection();
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = con;
            cmd.CommandType = CommandType.Text;
            string SupportName = txtSupportName.Text;
            string SupportDesignation = txtSupportDesignation.Text;
            //string SupportStatus = txtSupportStatus.Text;
            string SupportStatus = cbSupportStatus.SelectedItem.ToString();
            //string SupportStatus = SqlCommand();
            int i = 0;
            string s = "Active";
            // string result = int.TryParse(s, out i);

            if (cbSupportStatus.SelectedItem != null)
            {
                int x = int.Parse(cbSupportStatus.SelectedItem.ToString());
            }
            else
            { //Value is null }

                cmd.CommandText = "Update Status1 set Designation='" + SupportDesignation + "', Status='" + SupportStatus + "' where Name= '" + SupportName + "' ";
                MessageBox.Show(cmd.CommandText);
                con.Open();
                cmd.ExecuteNonQuery();
                con.Close();

            }
        }
4

1 に答える 1

2

あなたのコメントから、コンボボックスには0、1、2の数字しかありません

これらの数値は 1 つのフォームからデータベース (?) に格納され、別のフォームで取得されると想定しています。

  • 0 = アクティブ
  • 1 = 非アクティブ
  • 2 = 動作中

リストボックスに表示される

なぜそうしないのですか:

string listVal = "";
if(storedVal == 0)
{
    listVal = "Active";
}
else if(storedVal == 1)
{
    listVal = "Inactive";
}
else if(storedVal == 2)
{
    listVal = "Working";
}

if(listVal != "")
{
    // add to listbox
}

編集またはデータベースに数値を保存する代わりに、その意味を保存してから、リストボックスのテキストを取得するだけです

于 2013-08-27T11:42:40.100 に答える