I have table
name |datatype
uid |int
name |varchar(50)
email |varchar(32)
pass |varchar(32)
about |varchar(100)
age |varchar(20)
gender |varchar(50)
address |varchar(100)
phno |numeric(18, 0)
style |varchar(30)
I give varchar data type to age field and trying to insert 18-24 value, so it's showing me error like this --
"Error converting data type varchar to numeric."
cnn.Open();
cmd = new SqlCommand("update tblregister set name='"+txtname .Text +"', pass='"+txtpass .Text +"',about='"+txtabout .Text +"', age='"+drpage.SelectedItem.Text +"', gender='"+rd .SelectedValue +"', address='"+txtadd .Text +"', phno='"+txtphno.Text +"' where email='"+Session ["user"]+"' ", cnn);
cmd.ExecuteNonQuery();
cnn.Close();
what should I do?
Your table column phno
is numeric
and you are saving data as varchar
.. Also always use parameterised query to avoid SQL Injection
try below code
cnn.Open();
cmd = new SqlCommand(@"update tblregister set name=@name,pass=@pass,about=@about,
age=@age,gender=@gender,address=@address,phno=@phonenum where email = @email",cnn);
cmd.Parameters.AddWithValue("@name", txtname .Text);
cmd.Parameters.AddWithValue("@pass", txtpass .Text);
cmd.Parameters.AddWithValue("@about", txtabout .Text);
cmd.Parameters.AddWithValue("@age", drpage.SelectedItem.Text);
cmd.Parameters.AddWithValue("@gender", rd .SelectedValue);
cmd.Parameters.AddWithValue("@address", txtadd .Text );
cmd.Parameters.AddWithValue("@phonenum",Convert.ToInt64(txtphno.Text));
cmd.Parameters.AddWithValue("@email", Session ["user"].ToString());
cmd.ExecuteNonQuery();
cnn.Close();
Little bit modification on Sachu's Answer
cnn.Open();
cmd = new SqlCommand(@"update tblregister set name=@name,pass=@pass,about=@about,
age=@age,gender=@gender,address=@address,phno=@phonenum where email = @email",cnn);
cmd.Parameters.AddWithValue("@name", txtname .Text);
cmd.Parameters.AddWithValue("@pass", txtpass .Text);
cmd.Parameters.AddWithValue("@about", txtabout .Text);
cmd.Parameters.AddWithValue("@age", drpage.SelectedItem.Text);
cmd.Parameters.AddWithValue("@gender", rd .SelectedValue);
cmd.Parameters.AddWithValue("@address", txtadd .Text );
cmd.Parameters.AddWithValue("@phonenum",Convert.ToInt64(txtphno.Text.Trim()));
cmd.Parameters.AddWithValue("@email", Session ["user"].ToString());
cmd.ExecuteNonQuery();
cnn.Close();
Try This:
cnn.Open();
cmd = new SqlCommand(@"update tblregister set name=@name,pass=@pass,about=@about,
age=@age,gender=@gender,address=@address,phno=@phno where email = @email",cnn);
cmd.Parameters.AddWithValue("@name", txtname .Text);
cmd.Parameters.AddWithValue("@pass", txtpass .Text);
cmd.Parameters.AddWithValue("@about", txtabout .Text);
cmd.Parameters.AddWithValue("@age", drpage.SelectedItem.Text);
cmd.Parameters.AddWithValue("@gender", rd .SelectedValue);
cmd.Parameters.AddWithValue("@address", txtadd .Text );
cmd.Parameters.AddWithValue("@phno",Convert.ToInt64(txtphno.Text.Trim()));
cmd.Parameters.AddWithValue("@email", Session ["user"].ToString());
cmd.ExecuteNonQuery();
cnn.Close();
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.