Well, all things being equal (which they never really are) I suspect what you might mean is something like the following, though feel free to ignore me if I have it utterly arse-backwards.
cmd.CommandText = "insert into customer_detail (list_of_matching_columns) values (" + txtcustname.Text + ", " + txtpwd.Text + ", " + txtgender.Text + ", " + txtage.Text + ", " + txtemail.Text + ", " + txtaddress.Text + ", " + txtphoneno.Text + ")";
1: Table names should not have spaces.
2: It is usual, when inserting, to list all of the columns you are matching in your select/values unless the inserted columns exactly match what is already there.
3: I would imagine that each of the fiels matches a field in the table and that you are not trying to concatanate all of them into one field therefore you require commas to separate each field value so that the database knows what they are and where you want them to go.
4: Try to get out of tha habit of using SQL in code: create and use stored procedures and pass parameters.
5: It's 'values' not 'value'.