Я разрабатываю сайт для родительской ассоциации, для школы. Моя система имеет две зарезервированные области, к которым имеют доступ родители, а также учителя/школьники. Эти две области - это backoffice и FrontOffice.Невозможно вставить информацию в базу данных SQL
Я могу начать новую сессию с именем пользователя папы или матери и их соответствующим паролем, а затем в передней части дома у меня появилась новая страница, где она была подана, новый прием был успешно выполнен, и в результате этого новая строка должна быть вставлена в таблицу базы данных SQL.
Случается, что для этого, я имею следующий код:
protected void ReserveMeal (object sender, EventArgs e)
{
string tipoRefeicao=string.Empty;
DateTime DataSelecionada = Convert.ToDateTime(BasicDatePicker1.Text.ToString());
bool refeicaoFinalizada = false; //Refeicao nao é consumida no imediato
try
{
//ligar a base de dados e realizar nova conexao
SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\Vitor\Documents\Visual Studio 2015\Projects\Educational\Educational\App_Data\SchoolPASS.mdf; Integrated Security=True;Connect Timeout=30");
con.Open();
string selectUser = "SELECT count (*) from EEAluno where NomeUtilizadorEE='" + newName + "'";
string res = Convert.ToString(selectUser);
SqlCommand com = new SqlCommand(selectUser, con);
int temp = Convert.ToInt32(com.ExecuteScalar().ToString());
con.Close();
if (temp == 1)
{
con.Open();
string verificaPassword = "select Password from EEAluno where NomeUtilizadorEE='" + newName + "'";
SqlCommand passCommand = new SqlCommand(verificaPassword, con);
string password = passCommand.ExecuteScalar().ToString();
if (password == Session["Pass"].ToString())//Nao testado
{
//Inserir refeicao numa tabela nova
SqlCommand insert = new SqlCommand("INSERT INTO TabelaRefeicoesEncomendadas (NomePessoa,TipoRefeicao,Data, Finalizada) VALUES (@NomePessoa,@TipoRefeicao,@Data,@Finalizada)", con);
//insert.Parameters.Add("@Id", 1);
insert.Parameters.AddWithValue("@NomePessoa", newName);
insert.Parameters.AddWithValue("@TipoRefeicao", tipoRefeicao);
insert.Parameters.AddWithValue("@Data", DataSelecionada);
insert.Parameters.AddWithValue("@Finalizada", refeicaoFinalizada);//escreve falso na DB
}
}
}
catch (Exception exc)
{
}
}
Doing тщательно анализ, в коде, вы можете заметить, что я, пытаясь проверить, если пользователь autenticated правильный пользователь ,
Так что, если у нас есть много пользователей внутри таблицы БД, только один, только, например, «Х» (я предположил, что «Х» успешно прошел регистрацию в системе), является активным пользователем на определенном компьютере и только «Х» может зарезервировать еду для соответствующих детей.
Резюме: Я нашел в алгоритме для проверки пользовательской сессии, а затем вставить зарезервированное питание в таблицу базы данных. Мне не удалось. Я думаю, что он не может правильно проверить сеансы. Существуют две ошибки.
- Каждый раз, когда я пытаюсь создать еду (когда вызывается метод), имя пользователя увеличивается, так что если имя пользователя является «X» имя пользователя становится «XX»
- Информация о еде не вставлена База данных SQL.
Не могли бы вы помочь мне!
ли работа, когда вы удалите все, кроме утверждений SQL? Любая ошибка или исключение? Кроме того: прочитайте что-нибудь о SQL-инъекциях и подготовленных инструкциях, когда у вас есть запасные минуты – Marged
Для 2 вы не выполняете команду 'insert'. – adrianbanks
Я выполняю (sqlcommand) с именем insert! –