Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CombBox is not populating the ValueMember Properly from MySQL in C#
- private void cboMake_SelectedIndexChanged(object sender, EventArgs e)
- {
- if (cboMake.SelectedIndex >= 0)
- cboModel.Enabled = true;
- else
- cboModel.Enabled = false;
- // get the foreign key value of the model id to get the make for each brand to populate here
- // MessageBox.Show(cboModel.ValueMember);
- // right now selectindex always shows -1. why?
- // if it changes, you need to then enable the right cbo, else, disable.
- // but also, you need the mid, fk, so you can then do a new sql statement with the where clause to populate it.
- int fk = cboModel.SelectedIndex;
- string connStr = "server=123.456.7.8;user=root;database=car;port=3306; password=nowayjose";
- MySqlConnection conn = new MySqlConnection(connStr);
- try
- {
- string sql = "SELECT * FROM cs_model WHERE mid='fk'";
- MySqlCommand cmd = new MySqlCommand(sql, conn);
- DataTable dt = new DataTable();
- MySqlDataAdapter da = new MySqlDataAdapter(cmd);
- da.Fill(dt);
- cboMake.DataSource = dt;
- cboMake.DisplayMember = "model";
- cboMake.ValueMember = "mmid";
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.ToString(), "MySQL Connection Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- conn.Close();
- }
- private void frmMain_Load(object sender, EventArgs e)
- {
- string connStr = "server=123.456.7.8;user=root;database=car;port=3306; password=nowayjose";
- MySqlConnection conn = new MySqlConnection(connStr);
- try
- {
- string sql = "SELECT * FROM cs_make";
- MySqlCommand cmd = new MySqlCommand(sql, conn);
- DataTable dt = new DataTable();
- MySqlDataAdapter da = new MySqlDataAdapter(cmd);
- da.Fill(dt);
- cboMake.DataSource = dt;
- cboMake.DisplayMember = "make";
- cboMake.ValueMember = "mid";
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.ToString(), "MySQL Connection Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- conn.Close();
- }
- private void cboMake_SelectedIndexChanged(object sender, EventArgs e)
- {
- int fk = cboModel.SelectedIndex; // ?????
- .....
- }
- string sql = "SELECT * FROM cs_model WHERE mid='fk'";
- string sql = "SELECT * FROM cs_model WHERE mid=@mid";
- MySqlCommand cmd = new MySqlCommand(sql, conn);
- cmd.Parameters.AddWithValue("@mid", fk);
- int fk = cboMake.SelectedValue;
- private void cboMake_SelectedIndexChanged(object sender, EventArgs e) {
- if (cboMake.SelectedIndex == -1)
- cboModel.Enabled = false;
- else {
- cboModel.Enabled = true;
- int fk = cboMake.SelectedValue;
- using (var conn = new MySqlConnection(connStr))
- using (var cmd = new MySqlCommand("SELECT * FROM cs_model WHERE mid=@mid", conn))
- using (var da = new MySqlDataAdapter(cmd)) {
- cmd.Parameters.AddWithValue("@mid", fk);
- DataTable dt = new DataTable();
- da.Fill(dt);
- cboModel.DisplayMember = "model";
- cboModel.Validated = "mmid";
- cboModel.DataSource = dt;
- }
- }
- }
- private void cboMake_SelectedIndexChanged(object sender, EventArgs e)
- {
- int foreignKey = (int)cboMake.SelectedIndex +1; // i forgot to cast the int from string since the database was tinyint, it still returns string in c#
- string fk = foreignKey.ToString(); // since i need the string for the query, back it goes, but i needed to do arithmetic
- string connStr = "server=10.18.30.1;user=notroot;database=car;port=3306;password=password";
- MySqlConnection conn = new MySqlConnection(connStr);
- try
- {
- string sql = "SELECT * FROM cs_model WHERE mid=" + fk; // forgot to escape out of the string (used to php $var style within double quotes)
- MySqlCommand cmd = new MySqlCommand(sql, conn);
- DataTable dt = new DataTable();
- MySqlDataAdapter da = new MySqlDataAdapter(cmd);
- da.Fill(dt);
- cboModel.DataSource = dt; // i had cboModel by a silly mistake
- cboModel.DisplayMember = "model";
- cboModel.ValueMember = "mmid";
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.ToString(), "MySQL Connection Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- conn.Close();
- }
Add Comment
Please, Sign In to add comment