MadMyche
Ваша фактическая ошибка исходит от WHERE R = 'RowNumber'
Это жестко заданное значение, а не переменная, которую вы присвоили переменной Функция rownumber.
Во-вторых, это проблема SQL-инъекции. Достаточно легко сделать это правильно с первого раза. И это также исправляет вышеупомянутую проблему с номером строки.
string RowNumber = i.ToString();
string UpdateCmd = "UPDATE [Monthly Service] SET Location=@Lo, Address=@Ad, Name=@Nm, Testing=@Ts, FillTime=@FT, Notes=@Ns, Code_Key=@CK, Phone=@Ph WHERE R=@Row";
SqlCommand ThisUpdateCommand = new SqlCommand(UpdateCmd, myConnection);
ThisUpdateCommand.Parameters.AddWithValue("@Lo", data.Location);
ThisUpdateCommand.Parameters.AddWithValue("@Ad", data.Address);
ThisUpdateCommand.Parameters.AddWithValue("@Nm", data.Name);
ThisUpdateCommand.Parameters.AddWithValue("@Ts", data.Testing);
ThisUpdateCommand.Parameters.AddWithValue("@FT", data.FillTime);
ThisUpdateCommand.Parameters.AddWithValue("@Ns", data.Notes);
ThisUpdateCommand.Parameters.AddWithValue("@CK", data.CodeKey);
ThisUpdateCommand.Parameters.AddWithValue("@Ph", data.Phone);
ThisUpdateCommand.Parameters.AddWithValue("@Row", RowNumber);
Я подвергаю сомнению схему базы данных, сохраняя INTs в виде строки (R:RowNumber) и нескольких имен столбцов, которые являются специальными/зарезервированными словами в SQL Server (имя, адрес, местоположение).
Последнее, что это происходит в течение
FOR...NEXT
Было бы намного меньше накладных расходов, если бы вы объявили команду SQL
до а затем все, что вам нужно сделать, это переназначить параметры внутри цикла.
string UpdateCmd = "UPDATE [Monthly Service] SET Location=@Lo, Address=@Ad, Name=@Nm, Testing=@Ts, FillTime=@FT, Notes=@Ns, Code_Key=@CK, Phone=@Ph WHERE R=@Row";
SqlCommand ThisUpdateCommand = new SqlCommand(UpdateCmd, myConnection);
For(i=0.....)
{
ThisUpdateCommand.Parameters.Clear();
ThisUpdateCommand.Parameters.AddWithValue("@Lo", data.Location);
ThisUpdateCommand.Parameters.AddWithValue("@Ad", data.Address);
ThisUpdateCommand.Parameters.AddWithValue("@Nm", data.Name);
ThisUpdateCommand.Parameters.AddWithValue("@Ts", data.Testing);
ThisUpdateCommand.Parameters.AddWithValue("@FT", data.FillTime);
ThisUpdateCommand.Parameters.AddWithValue("@Ns", data.Notes);
ThisUpdateCommand.Parameters.AddWithValue("@CK", data.CodeKey);
ThisUpdateCommand.Parameters.AddWithValue("@Ph", data.Phone);
ThisUpdateCommand.Parameters.AddWithValue("@Row", i.ToString());