2014-11-07 3 views
2

Я пытаюсь обновить некоторое поле в своей таблице данных. При использовании приведенного ниже кода отображается одна ошибка. Помогите найти правильное решение. Спасибо.Невозможно неявно преобразовать тип 'int' в 'System.Data.DataTable'

Код:

ShadingAnalysisDataSetTableAdapters.tbl_AutoAssignJrEngineersTeamTableAdapter tm; 
tm = new ShadingAnalysisDataSetTableAdapters.tbl_AutoAssignJrEngineersTeamTableAdapter(); 
DataTable dt = new DataTable(); 
dt = tm.UpdateTeam(AssignedTeam,userName,DateTime.Now,ID); // error popup here 

SQL:

UPDATE tbl_AutoAssignJrEngineersTeam 
SET Assigned_Team = @Assigned_Team, 
    Updated_By = @Updated_By, 
    Updated_Date = @Updated_Date 
WHERE (Id = @Id) 

DataBase:

enter image description here

+2

Где-то у вас есть 'int' и пытайтесь явно или косвенно передать его в' DataTable'. Я предполагаю, что метод 'tm.UpdateTeam' возвращает int. – Dirk

+0

Возможный дубликат [Не удается неявно преобразовать тип 'int' в 'string'? C# 4] (http://stackoverflow.com/questions/26839755/cannot-implicitly-convert-type-int-to-string-c4) – Jad

ответ

4

TableAdapter -метод возвращает int, который является количество затронутых записей, так как многие записи были обновлены. Но вы назначаете его переменной DataTable.

int updatedRows = tm.UpdateTeam(AssignedTeam,userName,DateTime.Now,ID); 

Вы должны либо

  • загрузить таблицу снова с соответствующим GetData - или Fill(dt) методов из TableAdapter
  • или обновлять строки в таблице и использовать tm.Update(modifiedDataTable) вместо которого будут выполняться UpdateCommand адаптера для каждого ряда с RowState=Modified.
Смежные вопросы