Я пишу трехуровневое веб-приложение на C #, .Net3.5 с интерфейсом ASP.Net, серверным сервером SQL, взаимодействующим с ними через адаптеры таблиц и хранимые процедуры.Я наткнулся на некоторые странные функции.У меня есть таблица AdminUsers со столбцами
UserID int NOT NULL
Username varchar(20) NOT NULL
Hash varchar(50) NOT NULL
Salt varchar(50) NOT NULL
Email varchar(50) NOT NULL
. В рамках процесса аутентификации для входа в систему я проверяю предоставленное имя пользователя в таблице перед сравнением паролей.Это не удается, потому что каждая запись для каждого столбца varchar в таблице, когда она возвращается с помощью оператора GetAdata TableAdapter, дополняется справа пробелами до 15 символов, т.е.
loginUsername = "joe"
storeUsername = "joe
"
Интересно, что значение, хранящееся в БД, правильное, я проследил вставкустрока, чтобы обеспечить это.Таблица данных, отображающая эту таблицу, также отображается правильно.Эта проблема появляется только тогда, когда я вызываю следующий метод,
public static bool CheckIfUsernameAvailable(string username) {
AdminUsersDataTable data = DataCalls.GetAdministers();
foreach (Data.MissionEducate.AdminUsersRow row in data) {
if (row.Username == username) {
return false;
}
}
return true;
}
public static Data.MissionEducate.AdminUsersDataTable GetAdministers() {
AdminUsersTableAdapter tblApt = new AdminUsersTableAdapter();
return tblApt.GetData();
}
И GetData () в основном вызывает SELECT * FROM AdminUsers
Любые предположения, почему пробелы добавляются в конец таблицы.выбрать команды результаты?Не похоже, что данные хранятся так.Адаптеры таблиц часто показывают это поведение?Какую дополнительную информацию я могу предоставить?
Большое спасибо.