我的表单dtp_VacationStart和dtp_VacationEnd上有两个DateTimePicker.我想将其值传递给存储过程
CREATE PROC [ADD_VACATION] @vacationStart date,@vacationEnd date,@vacationMem nvarchar (100) = NULL,@idVacationKind_L int,@idMember_L int AS INSERT INTO [tblVacation] ([vacationStart],[vacationEnd],[vacationMem],[idVacationKind_L],[idMember_L]) VALUES (@vacationStart,@vacationEnd,@vacationMem,@idVacationKind_L,@idMember_L)
C#代码:
public void ADD_VACATION(string vacationStart,string vacationEnd,string vacationMem,int idVacationKind_L,int idMember_L) { DAL.open(); sqlParameter[] param = new sqlParameter[5]; param[0] = new sqlParameter("@vacationStart",sqlDbType.Date); param[0].Value = vacationStart; param[1] = new sqlParameter("@vacationEnd",sqlDbType.Date); param[1].Value = vacationEnd; param[2] = new sqlParameter("@vacationMem ",sqlDbType.NVarChar,100); param[2].Value = vacationMem; param[3] = new sqlParameter("@idVacationKind_L",sqlDbType.Int); param[3].Value = idVacationKind_L; param[4] = new sqlParameter("@idMember_L",sqlDbType.Int); param[4].Value = idMember_L; DAL.ExecuteCommand("ADD_VACATION",param); DAL.close(); }
而事件
private void btnAddVacation_Click(object sender,EventArgs e) { cms.ADD_VACATION( dtp_VacationStart.Text,dtp_VacationEnd.Text,txtVacationMemory.Text,Convert.ToInt32(cmbVacationKind.SelectedValue),Convert.ToInt32(dgMember_Grade.CurrentRow.Cells[0].Value.ToString())); MessageBox.Show("Added Successfuly"," ",MessageBoxButtons.OK,MessageBoxIcon.information); }
谢谢大家…抱歉令人困惑..这是我的第一个问题
解决方法
您的sqlParameter @vacationStart的类型为DateTime,但您为其指定了一个字符串.
您应该获取DateTimePicker的DateTime值(而不是DateTimePicker.Text中的字符串表示):
DateTime vacationStart = dtp_VacationStart.Value;
并更改ADD_VACATION的签名:
public void ADD_VACATION(DateTime vacationStart,...
现在你可以使用它:
private void btnAddVacation_Click(object sender,EventArgs e) { DateTime vacationStart = dtp_VacationStart.Value; cms.ADD_VACATION(vacationStart,...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。