数据库保存按钮上的 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 表单上的多个提交按钮,不同的验证组?