数据库保存按钮上的 asp.net 验证

Posted

技术标签:

【中文标题】数据库保存按钮上的 asp.net 验证【英文标题】:asp.net vallidation on database save button 【发布时间】:2014-01-22 11:40:46 【问题描述】:

我使用一个按钮将文本框和下拉阀保存到数据库 但问题是我表弟的预订系统,他最多有 50 个座位。

我的问题是我是否可以进行某种验证或计数,以便在 达到或超过想要预订的人的最大名额。

这是我的按钮

protected void Button1_Click(object sender, EventArgs e)
        
            SqlConnection cnn = new SqlConnection();
            cnn.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["BT-1ConnectionString"].ConnectionString;
            cnn.Open();
            SqlCommand cmd = new SqlCommand();
            cmd.CommandText = "select * from  OpdrachtGever";
            cmd.Connection = cnn;
            SqlDataAdapter da = new SqlDataAdapter();
            da.SelectCommand = cmd;
            DataSet ds = new DataSet();
            da.Fill(ds, "OpdrachtGever");
            SqlCommandBuilder cb = new SqlCommandBuilder(da);
            DataRow drow = ds.Tables["OpdrachtGever"].NewRow();
            drow["Naam"] = TextBox1.Text;
            drow["Adres"] = TextBox2.Text;
            drow["PostCode"] = TextBox3.Text;
            drow["WoonPlaats"] = TextBox4.Text;
            drow["TelefoonNummer"] = TextBox5.Text;
            drow["EmailAdres"] = TextBox6.Text;
            drow["AantalPersonen"] = DropDownList1.SelectedValue;

            ds.Tables["OpdrachtGever"].Rows.Add(drow);
            da.Update(ds, "OpdrachtGever");
            string script = @"<script language=""javascript"">
        alert('Information have been Saved Successfully.......!!!!!.');
       </script>;";
            Page.ClientScript.RegisterStartupScript(this.GetType(), "myJScript1", script);


        
    

【问题讨论】:

【参考方案1】:

您可以在填充数据集后检查 OpdrachtGever 表中的行数:

da.Fill(ds, "OpdrachtGever");
// Check booked count
int totalBooked = 0;
foreach (DataRow row in ds.Tables["OpdrachtGever"].Rows)

   totalBooked += Int32.Parse(row["AantalPersonen"]);


if (totalBooked >= 50)

//show error and return

【讨论】:

问题是有人可以在预订时放弃他想来的人,因此需要从 50 中减去阀门,然后在下一次预订时从下拉列表 Aantalpersonen 需要从上一次减法得到的数字中减去。 我已更改答案以计算预订总数 还有一个问题:当两个客户端同时运行这段代码时,可能都是路径检查,然后都插入行到DataSet。 现在它返回一个错误无法将 [] 索引应用于对象类型的表达式 为了防止多个客户端同时通过检查,您应该将 totalbooked 设为静态类变量。

以上是关于数据库保存按钮上的 asp.net 验证的主要内容,如果未能解决你的问题,请参考以下文章

jQuery Validation - 一个 asp.net 表单上的多个提交按钮,不同的验证组?

ASP.NET点击页面内容出现文本框

如何使用javascript在asp.net中gridview内的按钮单击上应用文本框空白验证?

asp.net多文件上传并把路劲保存到SQL数据库

保存连接到数据库的按钮代码在 ASP.NET 中不起作用

如何通过单击一个按钮保存 asp.net 文本框值并将该数据用于另一个按钮单击?