У меня есть проект ac # с 4+ формами (родительско-дочерние отношения).В Form01 я создаю таблицу данных с начальными значениями «Rating», присвоенными переменной «Horse»:
public Form01()
{
InitializeComponent();
dgvMeetings.DataSource = GetMeetings();
dtRatings = GetRating();
}
Таблица dtRatings создается с помощью вызова SQL следующим образом:
public DataTable GetRating()
{
DataTable dtRating = new DataTable();
string connString = ConfigurationManager.ConnectionStrings["dbx"].ConnectionString;
using (SqlConnection con = new SqlConnection(connString))
{
using (SqlCommand cmd = new SqlCommand(@"SELECT
Course
, Race
, Cloth
, Horse
, Rating
, Odds
FROM[Smartform].[dbo].[Entries]
where Date = convert(date, getdate() - 1)
order by 1, 2, 3", con))
{
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
dtRating.Load(reader);
}
}
return dtRating;
}
В Form4 я хочу иметь возможность обновлять значение «Rating» в dtRating, вводя значение в текстовое поле.Я пытался сделать это с помощью вызова textbox-keyup следующим образом:
private void TbxForm01_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyData == Keys.Enter)
{
string searchExpression = "Horse = " + Form03.Horse;
MessageBox.Show(searchExpression);
DataRow[] foundRows;
foundRows = Form01.dtRatings.Select(searchExpression);
MessageBox.Show(foundRows.ToString());
}
}
Как видите, я только начал.Мой план состоял в том, чтобы использовать Form03.Horse для поиска Horse на dtRatings и получения номера строки.Затем используйте это, чтобы перезаписать значение рейтинга значением текстового поля.
В первом окне сообщения отображается правильное имя «Лошадь».Тем не менее, я не могу заставить выражение Foundrows работать и правильно получить номер строки из dtRatings.
Может кто-нибудь помочь с этим и показать мне, как переписать значение рейтинга в dtRatings с введенным значением текстового поля?
Спасибо.