问题描述
数据库表createtablepcsxsz--批次属性设置(pcwlnumchar(10)primarykey,pcnumchar(4),scrqdatetime,rkrqdatetime,dqrqdatetime,fjrqdatetime,foreignkey(pcwlnum)referenceswlml(wlnum))visualstudioc#publicintinsert(stringpcwlnum,stringpcnum,stringscrq,stringrkrq,stringdqrq,stringfjrq)//添加数据{SqlConnectionconn=newSqlConnection(@"DataSource=.SQLEXPRESS;User=saID=123;InitialCatalog=Materials_Management;IntegratedSecurity=True");conn.Open();stringsql;sql="insertintopcsxsz(pcwlnum,pcnum,scrq,rkrq,dqrq,fjrq)values(@pcwlnum,@pcnum,@scrq,@rkrq,@dqrq,@fjrq)";SqlCommandcmd=newSqlCommand(sql,conn);SqlParameterpar1=newSqlParameter("@pcwlnum",pcwlnum);cmd.Parameters.Add(par1);SqlParameterpar2=newSqlParameter("@pcnum",pcnum);cmd.Parameters.Add(par2);SqlParameterpar3=newSqlParameter("@scrq",scrq);cmd.Parameters.Add(par3);SqlParameterpar4=newSqlParameter("@rkrq",rkrq);cmd.Parameters.Add(par4);SqlParameterpar5=newSqlParameter("@dqrq",dqrq);cmd.Parameters.Add(par5);SqlParameterpar6=newSqlParameter("@fjrq",fjrq);cmd.Parameters.Add(par6);intresult=cmd.ExecuteNonQuery();//不添加日期时,可是日期可以为空的报错,conn.Close();cmd.Dispose();returnresult;}privatevoidbutton1_Click(objectsender,EventArgse){stringpcwlnum,pcnum;stringscrq,rkrq,dqrq,fjrq;if(textBox1.Text.Trim()==""&&textBox2.Text.Trim()==""){MessageBox.Show("请输入物料编号和批次号信息,其余可为空!","错误",MessageBoxButtons.OK,MessageBoxIcon.Error);}else{pcwlnum=textBox1.Text.Trim();pcnum=textBox2.Text.Trim();scrq=maskedTextBox1.Text.Trim();//以下四项全为时间格式rkrq=maskedTextBox2.Text.Trim();dqrq=maskedTextBox3.Text.Trim();fjrq=maskedTextBox4.Text.Trim();intresult=0;result=insert(pcwlnum,pcnum,scrq,rkrq,dqrq,fjrq);//调用插入函数insertif(result>0){MessageBox.Show("添加成功!");}elseMessageBox.Show("添加失败!");}}
解决方案
解决方案二:
不添加日期时,你就给它个默认值呗。
解决方案三:
那应该怎样添加呢?我试了好多方法,可以帮帮忙吗?
解决方案四:
在入库前对日期进行判断,如果为空,则给个默认值,如当前日期,dqrq=maskedTextBox3.Text.Trim();if(dqrq=""){dqrq=datetime.now.tostring("yyyyMMdd");}
解决方案五:
也可以在存储过程里面给一个默认值,用getdate函数。
解决方案六:
1.数据库设置为可空,代码设置层isnullabled;2.给个初始值:datetiem.now/datetime.minvalue这类