我增加了针对三个关键项,不能为空的判断语句,但整体代码就报错了,请给看一下是什么原因吧;
```c#
private void btnsave_Click(object sender, EventArgs e)
{
Form1 form1 =(Form1) this.Owner;
DateTime inputdate = form1.dateTimePicker1.Value;
string inputworkshop = form1.comworkshop.Text;
string inputbatchNo = form1.batchNo.Text;
string inputprobatchNo = probatchNo.Text;
string inputprocess = form1.comprocess.Text;
string inputteams = form1.comteams.Text;
string inputbanci = textbc.Text;
string inputproname = form1.comproduct.Text;
string inputspec = form1.comspec.Text;
string inputunit = form1.comunit.Text;
string inputstate = form1.comstate.Text;
string inputdaypro = daypro.Text;
string inputsumpro = sumpro.Text;
string inputpax = pax.Text;
string inputulh = ulh.Text;
string inputnote = note.Text;
SqlConnection Conn = new SqlConnection("server= 192.168.100.247; database= Whmesinfo;User= Sa;Password=whyy@2021");
Conn.Open();
if (string.IsNullOrEmpty(inputprobatchNo) || string.IsNullOrEmpty(inputbatchNo)|| inputprocess == "请选择");
//判断关键的三项内容是否为空
{
MessageBox.Show("请录入“批号、产品批号、工序”,这三项关键信息", "谢谢", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
else {
string str = @"select count(*) from w_prohourcount where batchNo='" + inputbatchNo.ToString() + "'and probatchNo='" + inputprobatchNo.ToString() + "'and process='" + inputprocess.ToString() + "'";
SqlCommand com = new SqlCommand(str, Conn);
int intcont = Convert.ToInt32(com.ExecuteScalar());
if (intcont > 0)//判断数据库中是否有相同的录
{
MessageBox.Show("对不起!“批号+产品批号+工序”,和历史记录有重复,请检查确认!");
}
else
{
try
{
string SqlString = @"INSERT INTO [dbo].[w_prohourcount]
(date,workshop,teams,banci,process,batchNo,probatchNo,proname,spec,unit,daypro,sumpro,state,pax,ulh,note)
values
(@date,@workshop,@teams,@banci,@process,@batchNo,@probatchNo,@proname, @spec,@unit,@daypro,@sumpro,@state,@pax,@ulh,@note)";
SqlCommand comm = new SqlCommand(SqlString, Conn);
comm.Parameters.AddWithValue("@date", inputdate);
comm.Parameters.AddWithValue("@workshop", inputworkshop);
comm.Parameters.AddWithValue("@teams", inputteams);
comm.Parameters.AddWithValue("@banci", inputbanci);
comm.Parameters.AddWithValue("@process", inputprocess);
comm.Parameters.AddWithValue("@batchNo", inputbatchNo);
comm.Parameters.AddWithValue("@probatchNo", inputprobatchNo);
comm.Parameters.AddWithValue("@proname", inputproname);
comm.Parameters.AddWithValue("@spec", inputspec);
comm.Parameters.AddWithValue("@unit", inputunit);
comm.Parameters.AddWithValue("@daypro", inputdaypro);
comm.Parameters.AddWithValue("@sumpro", inputsumpro);
comm.Parameters.AddWithValue("@state", inputstate);
comm.Parameters.AddWithValue("@pax", inputpax);
comm.Parameters.AddWithValue("@ulh", inputulh);
comm.Parameters.AddWithValue("@note", inputnote);
comm.ExecuteNonQuery();
MessageBox.Show("数据保存成功!");
}
catch (Exception ex)
{
// 显示保存失败的错误信息
MessageBox.Show("保存失败:" + ex.Message);
}
finally
{
// 关闭数据库连接
Conn.Close();
}
}
}}
```
if(xxxx)**;** //这里多符号了,违反语法规则
{
}
检查一下 是不是 { } 缺失的问题
你把鼠标移到红色波浪线,会出错误提示ok?
【以下回答由 GPT 生成】
问题分析:
根据您提供的信息,增加了对三个关键项的判断语句后代码报错,我们可以分析以下几个可能的原因导致报错:
解决方案: 根据您提供的代码进行分析,以下是我可以提供的解决方案:
probatchNo
、batchNo
和 comprocess
的名称与实际输入框控件的名称相匹配。确保 daypro
、sumpro
、pax
、ulh
和 note
的名称与实际文本框控件的名称相匹配。
检查判断条件是否正确:
确保 inputprocess
与 "请选择" 进行比较时的数据类型正确。如果是字符串类型,可以使用 inputprocess.Equals("请选择")
进行比较。
检查可能缺少的引用:
using System.Data.SqlClient
。如果您已经进行了以上检查,并且问题仍然存在,请提供更具体的错误信息或错误堆栈跟踪,以便我们更好地帮助您解决问题。
备注:根据代码中的语法和命名规范推测您的代码是C#语言编写的,不是Java。我会根据C#语言提供解决方案。
【相关推荐】