c# - 如何使用选择计数 (*) 和参数 SQL 表和 c# 添加或更新值?
问题描述
我正在尝试使用 c# 语言使用此代码更新 SQL 表中的信息,第一部分是计算所有数据。第二部分是运行我的更新查询/功能
事件是:private void mlnk_ADD_Click(object sender, EventArgs e)
string SARL;
SqlCommand cmd = new SqlCommand("SELECT COUNT(*) FROM [employe] WHERE CODE = @CODE OR FULLNAME =
@FULLNAME OR BIRTHDATE = @BIRTHDATE OR BIRTHPLACE = @BIRTHPLACE OR ADDRESS = @ADDRESS
OR NCCP = @NCCP OR PHONE = @PHONE OR JOB = @JOB OR SARL =@SARL", napster.myConn);
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@CODE", mtb_CODE.Text);
cmd.Parameters.AddWithValue("@FULLNAME", mtb_FULLNAME.Text);
cmd.Parameters.AddWithValue("@BIRTHDATE", mdtp_BIRTHDATE.Text);
cmd.Parameters.AddWithValue("@BIRTHPLACE", mtb_BIRTHPLACE.Text);
cmd.Parameters.AddWithValue("@ADDRESS", mtb_ADDRESS.Text);
cmd.Parameters.AddWithValue("@NCCP", mtb_NCCP.Text);
cmd.Parameters.AddWithValue("@PHONE", mtb_PHONE.Text);
cmd.Parameters.AddWithValue("@JOB", mtb_JOB.Text);
if (mrb_LOCATERR.Checked == true)
{ SARL = "LOCA-TERR"; }
if (mrb_LUDAR.Checked == true)
{ SARL = "LUDAR"; }
if (mrb_ECORA.Checked == true)
{ SARL = "ECORA"; }
cmd.Parameters.AddWithValue("@SARL", SARL);
int UserExist = (int)cmd.ExecuteScalar();
在这里,我试图在检查所有数据不存在以避免重复后将数据插入我的表中
if (UserExist > 0)
{
this.Alert("the information already exists.", frmAlert.alertTypeEnum.Error);
}
else
{
if (mrb_LOCATERR.Checked == true)
{ SARL = "LOCA-TERR"; }
if (mrb_LUDAR.Checked == true)
{ SARL = "LUDAR"; }
if (mrb_ECORA.Checked == true)
{ SARL = "ECORA"; }
if (mtb_CODE.Text != "" && mtb_FULLNAME.Text != "" && mdtp_BIRTHDATE.Text != "" && mtb_BIRTHPLACE.Text != "" && mtb_JOB.Text != "" && mtb_PHONE.Text != "")
{
// (update_employee) is public void for insert data into [employe] table
napster.update_employee(mlnk_ID.Text, mtb_CODE.Text, mtb_FULLNAME.Text, mdtp_BIRTHDATE.Text, mtb_BIRTHPLACE.Text, mtb_ADDRESS.Text, mtb_JOB.Text, mtb_PHONE.Text, SARL, mtb_NCCP.Text);
mlnk_ID.Text = "";
mtb_CODE.Text = "";
mtb_FULLNAME.Text = "";
mdtp_BIRTHDATE.Text = "";
mtb_BIRTHPLACE.Text = "";
mtb_ADDRESS.Text = "";
mtb_JOB.Text = "";
mtb_PHONE.Text = "";
mtb_NCCP.Text = "";
mrb_LOCATERR.Checked = true;
this.Alert("information updated.", frmAlert.alertTypeEnum.Info);
}
else
{
this.Alert("information not updated.", frmAlert.alertTypeEnum.Error);
}
}
解决方案
使用存储过程更简洁,您可以定义输出和输入参数(例如:select cout(*) into output_parameter where ....)。并使用 switch 语句,您的代码中有很多 IF。
推荐阅读
- python - Python while 循环与 !=0
- apache-kafka - 如何从kafka的主题中创建具有大量JSON字段的KSQL Stream?
- javascript - ...state 究竟做了什么?
- python - 对 2D numpy 数组进行切片、索引和迭代
- aws-fargate - aws fargate 和网络成本
- python - Matlab 相当于 Python Panda 的 dtypes
- php - 这是 PHP 中的一个不好的做法吗?
- r - 为实验的模拟试验创建 R 循环
- java - PDFBox - 在动态填充的 PDF 表单的“另存为”功能上丢失复选框选择
- azure-postgresql - 在没有超级用户的情况下将 CSV 导入 Azure PostgreSQL