У меня есть две таблицы. Мне нужно получить calorificValue из таблицы продуктов и daily_gained из таблицы calorie_tracker, чтобы затем произвести некоторые вычисления. Я написал этот код, я знаю, что он не эффективен , Он извлекает daily_gained, но не получает calorificValue.как два получить данные из 2 разных таблиц C#
MySqlCommand cmd = new MySqlCommand("SELECT name,calorificValue FROM myfitsecret.food where [email protected]", cnn);
MySqlCommand cmd2 = new MySqlCommand("SELECT sportsman_id,daily_gained FROM myfitsecret.calorie_tracker where [email protected]_id", cnn);
cmd2.Parameters.AddWithValue("@sportsman_id", Login.userID);
string s = (comboBox1.SelectedItem).ToString();
cmd.Parameters.AddWithValue("@name",s);
cmd2.Connection.Open();
MySqlDataReader rd = cmd2.ExecuteReader(CommandBehavior.CloseConnection);
int burned = 0;
if (rd.HasRows) // if entered username and password have the data
{
while (rd.Read()) // while the reader can read
{
if (rd["sportsman_id"].ToString() == Login.userID) // True for admin
{
burned += int.Parse(rd["daily_gained"].ToString());
}
}
}
cmd2.Connection.Close();
cmd.Connection.Open();
MySqlDataReader rd2 = cmd.ExecuteReader(CommandBehavior.CloseConnection);
if (rd2.HasRows) // if entered username and password have data
{
while (rd2.Read()) // while the reader can read
{
if (rd2["name"].ToString() == s)
{
burned += int.Parse(rd2["calorificValue"].ToString());
}
}
}
MessageBox.Show(burned+"");
DataTable tablo = new DataTable();
string showTable = "SELECT * from myfitsecret.calorie_tracker where [email protected]_id";
MySqlDataAdapter adapter = new MySqlDataAdapter();
MySqlCommand showCommand = new MySqlCommand();
showCommand.Connection = cnn;
showCommand.CommandText = showTable;
showCommand.CommandType = CommandType.Text;
showCommand.Parameters.AddWithValue("@sportsman_id", Login.userID);
adapter.SelectCommand = showCommand;
adapter.Fill(tablo);
dataGridView1.DataSource = tablo;
cnn.Close();
Когда вы говорите «не удалось», вы получаете исключение? – abrown
@abrown rd2.HasRows возвращает False. Так что я не могу достичь калорийности с стола. – ekn
Я знаю, что это кажется очевидным, уверены ли вы, что у вас есть данные в базе данных для этого конкретного пользователя? Можете ли вы проверить, что параметр @name не установлен на значение по умолчанию пустой строки? – abrown