1

I have a C# application that stores a client's information. I'm using MySQL Workbench as the backend. Now when ever I insert data into the db (via various controls on my form), the primary key (client_file_no) is auto incremented but the rest of the fields show "NULL". I have checked the code over and over but I still cannot find the error.

    try
            {
                ConnectionDBLabData cdld = new ConnectionDBLabData();
                string ConnStr = cdld.GetConnectionString();
                MySqlConnection conn = new MySqlConnection(ConnStr);
                conn.Open();
                string QueryString = "insert into client_tbl (client_date_of_creation, client_referral_code, client_first_name, client_middle_name, client_last_name, client_sex, client_nationality, client_status, client_civil_id , client_birthday, client_born_year , client_preferred_language, client_occupation , client_email, client_tel_mobile, client_tel_home1, client_tel_home2, client_tel_work1,client_tel_work2, client_address1, client_address2, client_notes, client_cc , client_credit, client_debit, client_debitmax, client_stat, client_pricetype, client_qr_path ) VALUES(@value1, @value2, @value3 ,@value4, @value5 ,@value6, @value7, @value8, @value9 ,@value10 ,@value11, @value12, @value13, @value14, @value15, @value16, @value17, @value18, @value19, @value20, @value21, @value22, @value23, @value24, @value25, @value26, @value27, @value28, @value29)";
                MySqlCommand cmd = new MySqlCommand(QueryString, conn);
                cmd.Parameters.Add("@value1", textBox21.Text);
                cmd.Parameters.Add("@value2", textBox23.Text);
                cmd.Parameters.Add("@value3", textBox1.Text);
                cmd.Parameters.Add("@value4", textBox2.Text);
                cmd.Parameters.Add("@value5", textBox3.Text);
                cmd.Parameters.Add("@value6", Convert.ToString(comboBox4.SelectedItem));
                cmd.Parameters.Add("@value7", Convert.ToString(comboBox2.SelectedItem));
                cmd.Parameters.Add("@value8", Convert.ToString(comboBox1.SelectedItem));
                cmd.Parameters.Add("@value9", textBox5.Text);
                cmd.Parameters.Add("@value10", textBox13.Text);
                cmd.Parameters.Add("@value11", textBox19.Text);
                cmd.Parameters.Add("@value12", textBox22.Text);
                cmd.Parameters.Add("@value13", textBox6.Text);
                cmd.Parameters.Add("@value14", textBox7.Text);
                cmd.Parameters.Add("@value15", textBox8.Text);
                cmd.Parameters.Add("@value16", textBox9.Text);
                cmd.Parameters.Add("@value17", textBox10.Text);
                cmd.Parameters.Add("@value18", textBox11.Text);
                cmd.Parameters.Add("@value19", textBox12.Text);
                cmd.Parameters.Add("@value20", richTextBox1.Text);
                cmd.Parameters.Add("@value21", richTextBox2.Text);
                cmd.Parameters.Add("@value22", richTextBox3.Text);
                cmd.Parameters.Add("@value23", textBox4.Text);
                cmd.Parameters.Add("@value24", Convert.ToDouble(textBox14.Text));
                cmd.Parameters.Add("@value25", Convert.ToDouble(textBox15.Text));
                cmd.Parameters.Add("@value26", Convert.ToDouble(textBox16.Text));
                cmd.Parameters.Add("@value27", Convert.ToInt32(textBox17.Text));
                cmd.Parameters.Add("@value28", Convert.ToInt32(textBox18.Text));
                cmd.Parameters.Add("@value29", textBox5.Text + "_qr.png");
                cmd.ExecuteScalar();

And the database:

    create table client_tbl(client_file_no int not null auto_increment primary key,
                            client_date_of_creation varchar(20),
                            client_referral_code varchar(60), 
                            client_first_name varchar(20),
                            client_second_name varchar(20),
                            client_last_name varchar(20),
                            client_nationality varchar(60),
                            client_sex varchar(10),
                            client_status varchar(20),
                            client_civil_id varchar(30),
                            client_birthday varchar(20), 
                            client_born_year varchar(20),
                            client_occupation varchar(30),
                            client_preferred_language varchar(30),
                            client_email varchar(40), 
                            client_tel_mobile varchar(20),
                            client_tel_work1 varchar(20),
                            client_tel_work2 varchar(20),
                            client_tel_home2 varchar(20),
                            client_address1 varchar(512), 
                            client_address2 varchar(512), 
                            client_notes varchar(512),
                            client_cc  varchar(50), 
                            client_credit float,
                            client_debit float, 
                            client_debitmax float, 
                            client_stat int,
                            client_pricetype int, 
                            client_rq_code varchar(80));
5
  • 1
    What are the values of the text boxes? As a suggestion I would try and name your parameters properly, as well as your text boxes. Commented Feb 27, 2014 at 9:00
  • Did you get any exception? From your code above is not clear what happen in case of exceptions. And try to use ExecuteNonQuery for an insert command.... Commented Feb 27, 2014 at 9:07
  • I try to run you code with Xampp tool. Everything is normal. Have you used Immidiate Windows to debug and view all values of all parameters? I think you should check their's values. Some of them may be wrong datatype. Commented Feb 27, 2014 at 9:40
  • All the data types are right. If I am not wrong, 1-2 fields may be wrong (with respect to their data types) but atleast the rest of the fields(string values) should work right! Commented Feb 27, 2014 at 9:47
  • There was an issue with my connector. I changed it and everything is working. Thanks everyone Commented Feb 27, 2014 at 11:00

2 Answers 2

1

Try AddWithValue

command.Parameters.AddWithValue("@value1", textBox21.Text);
Sign up to request clarification or add additional context in comments.

4 Comments

Hello, When I use AddWithValue() this is the error that I get. Do I have to import some additional package? 'MySql.Data.MySqlClient.MySqlParameterCollection' does not contain a definition for 'AddWithValue' and no extension method 'AddWithValue' accepting a first argument of type 'MySql.Data.MySqlClient.MySqlParameterCollection' could be found (are you missing a using directive or an assembly reference?)
@KshitijThube this should not be possible with the latest versions of the MySql Connector. What version do you use of the connector? Or do you use a differente ADO.NET provider for MySql?
Finally! My connector was "FAULTY" that caused all the error. Thanks everyone for your help.
AddWithValue was added in v5.0.5 of the MySql connector - which version are you using?
0

Solved the issue by changing my connector(turns out my connector was faulty) Thanks everyone for your help Regards, Kshitij Thube

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.