如何将 Google 输入类型数字字符串转换为整数作为存储到 MySql 数据库?

How to convert Google Input typed number String into integer as Store into MySql DB?

我想将 google 输入的输入数字存储到列为 Integer 的数据库中。当我想将它转换为整数时,它给我错误说输入字符串格式不正确如何解决这个问题?

MySqlConnection con = new MySqlConnection("Server=syits03-pc;Database=Demo;Uid=root;Pwd=kbabu4668;CharSet=utf8;");
con.Open();
MySqlCommand cmd = new MySqlCommand("insert into tblnew(str,num,numstr) values(@str,@num,@numstr)", con);
cmd.Parameters.AddWithValue("@str", textBox1.Text);
MySqlCommand cmd1= new MySqlCommand("Select str from tblnew where id=1",con);
cmd.Parameters.AddWithValue("@num", Convert.ToInt32(cmd1.ExecuteScalar().ToString()));
cmd.Parameters.AddWithValue("@numstr", textBox3.Text);
object obj= cmd.ExecuteNonQuery();
con.Close();
if (obj != null)
{
    MessageBox.Show("Inserted");
}

看起来您的 cmd.executescalar 有时可能会返回 null,它会被 tostring() 函数转换为 "" 如果您不确定输入是否正确或不是你总是可以尝试使用 int.TryParse() 请在使用

之前阅读该功能

试试这个 using (SqlConnection con = new SqlConnection("Server = syits03 - pc; Database = Demo; Uid = root; Pwd = kbabu4668; CharSet = utf8; ")) { SqlCommand cmd1 = new SqlCommand("Select top 1 str from tblnew where id -1", con); string num = cmd1.ExecuteScalar().ToString(); string cmdText = string.Concat("insert into tblnew(str, num, numstr) values(", textBox1.Text, ",", num, ",", textBox3.Text, ")"); SqlCommand cmd = new SqlCommand(cmdText, con); cmd.ExecuteNonQuery(); } 您应该考虑的一些可能问题是:

  • 如果没有从 cmd1 returned 并且将空白值传递给 @num 怎么办?
  • cmd.ExecuteNonQuery() 并不意味着 return 任何东西,因此将它分配给一个对象可能不是最好的主意。相反,您可以将它放在 try/catch 中。例如try { cmd.ExecuteNonQuery(); MessageBox.Show("Inserted"); } catch (Exception ex) { MessageBox.Show("Stored Proc failed with error: " + ex.ToString()); }