C# MySqlCommand对象引用未设置为对象的实例
我想在计算燃烧值后更新Carolie_tracker表。在cmd2命令生效之前。但在尝试使用cmd2时出现错误:对象引用未设置为对象的实例。如何在同一命令(cmd)中进行此更新,或者是否有其他方法C# MySqlCommand对象引用未设置为对象的实例,c#,mysql,C#,Mysql,我想在计算燃烧值后更新Carolie_tracker表。在cmd2命令生效之前。但在尝试使用cmd2时出现错误:对象引用未设置为对象的实例。如何在同一命令(cmd)中进行此更新,或者是否有其他方法 string time = DateTime.Now.ToString("dd-MM-yyyy"); int burned = 0; string s = (comboBox1.SelectedItem).ToString();
string time = DateTime.Now.ToString("dd-MM-yyyy");
int burned = 0;
string s = (comboBox1.SelectedItem).ToString();
cnn.Open();
string cmdText = @"SELECT calorificValue
FROM myfitsecret.food
WHERE name=@name;
SELECT daily_gained
FROM myfitsecret.calorie_tracker
WHERE sportsman_id=@sportsman_id";
using (MySqlCommand cmd = new MySqlCommand(cmdText, cnn))
{
// Add both parameters to the same command
cmd.Parameters.Add("@name", MySqlDbType.String).Value = s;
cmd.Parameters.Add("@sportsman_id", MySqlDbType.String).Value = Login.userID;
using (MySqlDataReader reader = cmd.ExecuteReader())
{
// get sum from the first result
if (reader.Read()) burned += (Convert.ToInt32(reader[0])*int.Parse(textBox1.Text));
// if there is a second resultset, go there
if (reader.NextResult())
if (reader.Read())
burned += Convert.ToInt32(reader[0]);
}
cmd.Connection.Close();
MySqlCommand cmd2 = new MySqlCommand("update myfitsecret.calorie_tracker set daily_gained=@daily_gained where sportsman_id=@sportsman_id and Date=@Date");
cmd2.CommandType = CommandType.Text;
cmd2.Connection.Open();
cmd2.Parameters.AddWithValue("@daily_gained", burned);
cmd2.Parameters.AddWithValue("@Date", time);
cmd2.Parameters.Add("@sportsman_id", MySqlDbType.String).Value = Login.userID;
cmd2.ExecuteNonQuery();
您需要先将连接传递到MySqlCommand,然后再尝试按如下方式打开它:
cmd.Connection.Close();
MySqlCommand cmd2 = new MySqlCommand("update myfitsecret.calorie_tracker set daily_gained=@daily_gained where sportsman_id=@sportsman_id and Date=@Date",cnn);
cmd2.CommandType = CommandType.Text;
cmd2.Connection.Open();
我还建议使用语句将此命令包装在
中。我还建议使用参数进行查询。