ComboBox问题正确显示值

时间:2016-05-23 12:28:00

标签: c# sql

这个程序使用fileds没有数据网格。我正在努力的事情,或者你可以说我想纠正这个功能就是这个。

如果用户输入ID" 1234"并且此数据已存在于SQL数据库中而不是程序崩溃或异常中,显示数据已存在的弹出警报。

提交的年份是一个组合框而不是文本框,我们可以在下拉列表中查看年份,如果用户选择ID" 1234"并选择2016年,只有相应的金额应出现在金额文本框中,或者如果有其他年份可以选择此金额并检查该用户ID。 该程序正在列出但未正确显示年份,我的代码如下: -

    private void btnSearch_Click(object sender, EventArgs e)
    {
        cmbYear.Items.Clear();
        string sql = "";
        con.Open();
        SqlCommand cmd = new SqlCommand();

        try
        {
            sql += "SELECT m.MemberId, m.Name, m.Address, m.Cellular, m.Email, p.PaymentId, p.Year, p.Amount from Members as m";
            sql += " INNER JOIN Payments as p ON m.MemberId = p.MemberId";
            sql += " WHERE m.MemberId = '" + tbID.Text + "' ORDER BY p.Year ASC";

        cmd.Connection = con;
        cmd.CommandText = sql;

            SqlDataAdapter da = new SqlDataAdapter(cmd);
            DataTable dt = new DataTable();
            da.Fill(dt);
            con.Close();
            if(dt.Rows.Count >0)
            {
                for(int i = 0; i<=dt.Rows.Count -1;i++)
                {
                    tbID.Text = dt.Rows[i]["MemberId"].ToString();
                    tbName.Text = dt.Rows[i]["Name"].ToString();
                    tbCellular.Text = dt.Rows[i]["Cellular"].ToString();
                    tbEmail.Text = dt.Rows[i]["Email"].ToString();
                    tbAddress.Text = dt.Rows[i]["Address"].ToString();
                    tbAmount.Text = dt.Rows[i]["Amount"].ToString();
                    cmbYear.Items.Add(dt.Rows[i]["Year"].ToString());
                }

            }

        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message.ToString());
        }
    }

    //This part displaying og the existing data from all the fileds 

0 个答案:

没有答案