C# asp.net在数据库保存按钮上的值

C# asp.net在数据库保存按钮上的值,c#,asp.net,database,button,save,C#,Asp.net,Database,Button,Save,我使用一个按钮将textbox en下拉阀保存到数据库中 但问题是我表弟的预订系统,他最多有50个座位 我的问题是,我是否可以加入某种验证或计数,当 到达或超出想要预订的人的最大位置 这是我的钮扣 protected void Button1_Click(object sender, EventArgs e) { SqlConnection cnn = new SqlConnection(); cnn.ConnectionStrin

我使用一个按钮将textbox en下拉阀保存到数据库中 但问题是我表弟的预订系统,他最多有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\u单击(对象发送者,事件参数e)
{
SqlConnection cnn=新的SqlConnection();
cnn.ConnectionString=System.Configuration.ConfigurationManager.ConnectionString[“BT-1ConnectionString”]。ConnectionString;
cnn.Open();
SqlCommand cmd=新的SqlCommand();
cmd.CommandText=“从OpdrachtGever中选择*”;
cmd.Connection=cnn;
SqlDataAdapter da=新的SqlDataAdapter();
da.SelectCommand=cmd;
数据集ds=新数据集();
da.填充(ds,“OpdrachtGever”);
SqlCommandBuilder cb=新的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.更新(ds,“OpdrachtGever”);
字符串脚本=@“
警报('信息已成功保存……!!!);
;";
Page.ClientScript.RegisterStartupScript(this.GetType(),“MyJScript 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
}

问题是,有人可以放弃在他们预订时他想来的方式,这样valve就需要从50中减去,然后当下一个预订被从下拉列表中放入vavle时,Antalpersonen需要从上一个减去的数字中减去。我已经改变了我的答案要计算保留的总计数,还有另一个问题:当两个客户端同时运行此代码时,可能是两个客户端都执行了检查路径,然后都将行插入到数据集。现在返回一个错误,无法使用[]应用索引要防止多个客户端同时通过检查,应将totalbooked设置为静态类变量。