无法在SQL数据库中插入信息

本文关键字:插入 信息 数据库 SQL | 更新日期: 2023-09-27 18:29:37

我正在为一所学校的家长协会开发一个网站。我的系统有两个保留区域,家长和教师/学校成员都可以访问。这两个领域是后台和前台。

我可以用爸爸或妈妈的用户名和他们各自的密码开始一个新的会话,然后在前台我有一个新页面,在那里,它被跳过了,一顿新的饭被成功地预订了,结果应该在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)
            {
            }

        }

在代码中进行仔细分析时,您可以观察到我正在尝试检查未识别的用户是否是正确的用户。

因此,如果我们在一个DB表中有许多用户,那么在一台确定的计算机中,只有一个用户是活动用户,例如"X"(我假设"X"已成功登录系统),并且只有"X"可以为各自的孩子预订一顿饭。

简历:我已经考虑了一种算法来检查用户会话,然后将预订的餐点插入数据库表中。我没有成功。我认为它无法正确验证会话。存在两个错误。

  1. 每次我尝试创建餐时(当调用方法时),用户名都会增加,所以如果用户名是"X",则用户名变为"XX"
  2. SQL数据库中未插入餐食信息

你能帮我吗!

无法在SQL数据库中插入信息

根据提供的代码,您没有执行插入的sql命令。

这样的东西应该工作,在你完成设置参数后:

                insert.ExecuteNonQuery();