0
У меня есть таблица DataTable и несколько элементов управления TextBox. Когда я нажимаю кнопку, мне нужно изменить столбец «Значение», где ID соответствует текстовому вводу.C# DataTable редактирует ячейку в определенной строке с Linq
DataTable table = new DataTable();
table.Columns.Add("ID", typeof(string));
table.Columns.Add("Name", typeof(string));
table.Columns.Add("Value", typeof(decimal));
table.Columns.Add("Unit", typeof(string));
string myId=txtId.Text;
decimal myValue=txtValue.Text;
Я знаю, как проверить, существует ли идентификатор в таблице. Как изменить значение поля «Значение»?
bool contains = table.AsEnumerable().Any(row => myID == row.Field<string>("ID"));
if (contains == true)
{
//Change the value of row.Field<string>("Value")!!
}
Благодарим за помощь.
EDIT: Вот мое решение:
string s = "ID='" + myId + "'";
DataRow dr = table.Select(s).FirstOrDefault();
dr["Value"] = myValue;
пытался ваше решение, но он выдает ошибку: Не удается найти столбец [MyId]. – user1080533
Думаю, он имел в виду - myId - это Ид, который вы ищете. и почему ваш идентификатор поступает из вашей базы данных? –
NWM решил это :) На самом деле это не идентификатор, это код продукта (который может включать числа и буквы, вот почему это строка) – user1080533