SqlParameterobjOutputParameternewSqlParameter(@MemberID,SqlDbType.Int);comm.Parameters.Add(ob
SqlParameter objOutputParameter=new SqlParameter("@MemberID",SqlDbType.Int);
comm.Parameters.Add(objOutputParameter);
objOutputParameter.Direction=ParameterDirection.Output;
comm.Parameters.Add("@服务站号",SqlDbType.VarChar,20);
comm.Parameters.Add("@会员卡号",SqlDbType.VarChar,50);
comm.Parameters.Add("@发票号",SqlDbType.NVarChar,50);
comm.Parameters.Add("@会员类别",SqlDbType.NVarChar,20);
comm.Parameters.Add("@入会日期",SqlDbType.DateTime);
comm.Parameters.Add("@入会方式",SqlDbType.NVarChar,20);
comm.Parameters.Add("@领卡方式",SqlDbType.NVarChar,20);
comm.Parameters.Add("@会费",SqlDbType.Decimal);
comm.Parameters.Add("@交费年限",SqlDbType.Int);
comm.Parameters.Add("@交费日期",SqlDbType.DateTime);
comm.Parameters.Add("@续会日期",SqlDbType.DateTime);
comm.Parameters.Add("@续会方式",SqlDbType.NVarChar,20);
comm.Parameters.Add("@续会年限",SqlDbType.Int);
comm.Parameters.Add("@续会提醒",SqlDbType.Bit);
comm.Parameters.Add("@是否过期",SqlDbType.Bit);
comm.Parameters.Add("@会员经理",SqlDbType.NVarChar,20);
comm.Parameters.Add("@姓名",SqlDbType.NVarChar,20);
comm.Parameters.Add("@性别",SqlDbType.NVarChar,10);
comm.Parameters.Add("@身份证",SqlDbType.NVarChar,18);
comm.Parameters.Add("@生日",SqlDbType.DateTime);
comm.Parameters.Add("@婚姻状况",SqlDbType.NVarChar,10);
comm.Parameters.Add("@家庭成员人数",SqlDbType.NVarChar,10);
comm.Parameters.Add("@血型",SqlDbType.NVarChar,10);
comm.Parameters.Add("@兴趣爱好",SqlDbType.NVarChar,100);
comm.Parameters.Add("@家庭地址",SqlDbType.NVarChar,50);
comm.Parameters.Add("@邮编",SqlDbType.VarChar,6);
comm.Parameters.Add("@家庭电话",SqlDbType.VarChar,50);
comm.Parameters.Add("@手机",SqlDbType.VarChar,11);
comm.Parameters.Add("@办公电话",SqlDbType.VarChar,50);
comm.Parameters.Add("@电子信箱",SqlDbType.VarChar,100);
comm.Parameters.Add("@网址",SqlDbType.VarChar,50);
comm.Parameters.Add("@学历",SqlDbType.NVarChar,10);
comm.Parameters.Add("@职业",SqlDbType.NVarChar,20);
comm.Parameters.Add("@工作单位",SqlDbType.NVarChar,20);
comm.Parameters.Add("@职务",SqlDbType.NVarChar,20);
comm.Parameters.Add("@驾驶证类型",SqlDbType.NVarChar,10);
comm.Parameters.Add("@发证日期",SqlDbType.DateTime);
comm.Parameters.Add("@发证单位",SqlDbType.NVarChar,20);
comm.Parameters.Add("@驾驶证年审日期",SqlDbType.DateTime);
comm.Parameters.Add("@驾驶证年审提醒",SqlDbType.Bit);
comm.Parameters.Add("@其他联系人",SqlDbType.NVarChar,20);
comm.Parameters.Add("@与本人关系",SqlDbType.NVarChar,20);
comm.Parameters.Add("@联系人电话",SqlDbType.NVarChar,50);
comm.Parameters.Add("@联系人地址",SqlDbType.NVarChar,50);
comm.Parameters.Add("@备注",SqlDbType.NVarChar,200);
comm.Parameters.Add("@车牌号",SqlDbType.NVarChar,10);
comm.Parameters.Add("@品牌",SqlDbType.NVarChar,20);
comm.Parameters.Add("@车型",SqlDbType.NVarChar,20);
comm.Parameters.Add("@颜色",SqlDbType.NVarChar,10);
comm.Parameters.Add("@核定乘客",SqlDbType.Int);
comm.Parameters.Add("@车辆用途",SqlDbType.NVarChar,20);
comm.Parameters.Add("@所在地区",SqlDbType.NVarChar,10);
comm.Parameters.Add("@车架号",SqlDbType.VarChar,30);
comm.Parameters.Add("@发动机号",SqlDbType.VarChar,30);
comm.Parameters.Add("@购车日期",SqlDbType.DateTime);
comm.Parameters.Add("@领证日期",SqlDbType.DateTime);
comm.Parameters.Add("@车辆年检日期",SqlDbType.DateTime);
comm.Parameters.Add("@车辆年检提醒",SqlDbType.Bit);
comm.Parameters.Add("@季度保养日期",SqlDbType.DateTime);
comm.Parameters.Add("@季度保养提醒",SqlDbType.Bit);
comm.Parameters.Add("@养路费到期",SqlDbType.DateTime);
comm.Parameters.Add("@养路费提醒",SqlDbType.Bit);
comm.Parameters.Add("@保险公司",SqlDbType.NVarChar,20);
comm.Parameters.Add("@险种",SqlDbType.NVarChar,100);
comm.Parameters.Add("@投保日期",SqlDbType.DateTime);
comm.Parameters.Add("@投保年限",SqlDbType.Int);
comm.Parameters.Add("@保险到期",SqlDbType.DateTime);
comm.Parameters.Add("@保险到期提醒",SqlDbType.Bit);
comm.Parameters.Add("@保险代理人",SqlDbType.NVarChar,10);
comm.Parameters.Add("@代理人电话",SqlDbType.VarChar,50);
comm.Parameters.Add("@保单号",SqlDbType.VarChar,50);
comm.Parameters.Add("@保险费",SqlDbType.Decimal);
comm.Parameters.Add("@保险提成",SqlDbType.Decimal);
comm.Parameters.Add("@本站投保",SqlDbType.Bit);
comm.Parameters.Add("@录入员",SqlDbType.NVarChar,20);
22 个解决方案
//填冲参数
comm.Parameters["@服务站号"].Value=txtStation.Text;
comm.Parameters["@会员卡号"].Value=txtCard.Text;
comm.Parameters["@发票号"].Value=txtInvoice.Text;
comm.Parameters["@会员类别"].Value=ddlMemberType.SelectedValue.ToString();
comm.Parameters["@入会日期"].Value=txtJoinDate.Text;
comm.Parameters["@入会方式"].Value=ddlJoinType.SelectedValue.ToString();
comm.Parameters["@领卡方式"].Value=ddlGetCardType.SelectedValue.ToString();
comm.Parameters["@会费"].Value=txtFee.Text;
comm.Parameters["@交费年限"].Value=txtYear.Text;
comm.Parameters["@交费日期"].Value=txtPayDate.Text;
comm.Parameters["@续会日期"].Value=txtPayDate.Text;
comm.Parameters["@续会方式"].Value=txtPayDate.Text;
comm.Parameters["@续会年限"].Value=txtStation.Text;
//comm.Parameters["@续会提醒"].Value="1";//chkRenew.Checked.ToString();
//comm.Parameters["@是否过期"].Value="0";
comm.Parameters["@会员经理"].Value=txtManager.Text;
/*comm.Parameters["@姓名"].Value=txtName.Text;
comm.Parameters["@性别"].Value=ddlSex.SelectedValue.ToString();
comm.Parameters["@身份证"].Value=txtIdentity.Text;
comm.Parameters["@生日"].Value="1987-10-07";
comm.Parameters["@婚姻状况"].Value=ddlMarriage.SelectedValue.ToString();
comm.Parameters["@家庭成员人数"].Value=ddlFamily.SelectedValue.ToString();
comm.Parameters["@血型"].Value=ddlBlood.SelectedValue.ToString();
comm.Parameters["@兴趣爱好"].Value=txtInterest.Text;
comm.Parameters["@家庭地址"].Value=txtAddress.Text;
comm.Parameters["@邮编"].Value=txtPostcode.Text;
comm.Parameters["@家庭电话"].Value=txtTel.Text;
comm.Parameters["@手机"].Value=txtMobile.Text;
comm.Parameters["@办公电话"].Value=txtOfficeTel.Text;
comm.Parameters["@电子信箱"].Value=txtEmail.Text;
comm.Parameters["@网址"].Value=txtSite.Text;
comm.Parameters["@学历"].Value=ddlCert.SelectedValue.ToString();
comm.Parameters["@职业"].Value=ddlJobType.SelectedValue.ToString();
comm.Parameters["@工作单位"].Value=txtUnit.Text;
comm.Parameters["@职务"].Value=txtPost.Text;
comm.Parameters["@驾驶证类型"].Value=txtLicense.Text;
comm.Parameters["@发证日期"].Value=txtLicenseDate.Text;
comm.Parameters["@发证单位"].Value=txtLicenseUnit.Text;
comm.Parameters["@驾驶证年审日期"].Value=txtLicenseCheckDate.Text;
comm.Parameters["@驾驶证年审提醒"].Value="1";//chkLicense.Checked.ToString();
comm.Parameters["@其他联系人"].Value=txtContact.Text;
comm.Parameters["@与本人关系"].Value=txtRelation.Text;
comm.Parameters["@联系人电话"].Value=txtTel2.Text;
comm.Parameters["@联系人地址"].Value=txtAddress2.Text;
comm.Parameters["@备注"].Value=txtStation.Text;
comm.Parameters["@车牌号"].Value=txtCarNo.Text;
comm.Parameters["@品牌"].Value=ddlCarMake.SelectedValue.ToString();
comm.Parameters["@车型"].Value=txtCarType.Text;
comm.Parameters["@颜色"].Value=ddlColor.SelectedValue.ToString();
comm.Parameters["@核定乘客"].Value=txtCapacity.Text;
comm.Parameters["@车辆用途"].Value=ddlCarUsage.SelectedValue.ToString();
comm.Parameters["@所在地区"].Value=txtArea.Text;
comm.Parameters["@车架号"].Value=txtShelf.Text;
comm.Parameters["@发动机号"].Value=txtEngine.Text;
comm.Parameters["@购车日期"].Value=txtBuyDate.Text;
comm.Parameters["@领证日期"].Value=txtCarDate.Text;
comm.Parameters["@车辆年检日期"].Value=txtCarCheckDate.Text;
comm.Parameters["@车辆年检提醒"].Value="1";
comm.Parameters["@季度保养日期"].Value=txtQuarterDate.Text;
comm.Parameters["@季度保养提醒"].Value="1";
comm.Parameters["@养路费到期"].Value=txtRoadDate.Text;
comm.Parameters["@养路费提醒"].Value="1";
comm.Parameters["@保险公司"].Value=ddlInsurer.SelectedValue.ToString();
comm.Parameters["@险种"].Value=txtMemo.Text;
comm.Parameters["@投保日期"].Value=txtInsureDate.Text;
comm.Parameters["@投保年限"].Value=txtInsureYear.Text;
comm.Parameters["@保险到期"].Value=txtInsureDate.Text;
comm.Parameters["@保险到期提醒"].Value="1";
comm.Parameters["@保险代理人"].Value=txtAgent.Text;
comm.Parameters["@代理人电话"].Value=txtAgentTel.Text;
comm.Parameters["@保单号"].Value=txtInsureNo.Text;
comm.Parameters["@保险费"].Value=txtInsureFee.Text;
comm.Parameters["@保险提成"].Value=txtBonus.Text;
comm.Parameters["@本站投保"].Value="1";
comm.Parameters["@录入员"].Value="1";*/
comm.CommandType=CommandType.StoredProcedure;
conn.Open();
SqlDataReader i=comm.ExecuteReader();
conn.Close();
其中有个地方在sql2000里是numeric(9, 2),
而sqldatetype里我用Decimal代替
源错误:
行 397: comm.CommandType=CommandType.StoredProcedure;
行 398: conn.Open();
行 399: SqlDataReader i=comm.ExecuteReader();
行 400: conn.Close();
行 401: }
源文件: c:\inetpub\wwwroot\qfcy\addmember.aspx.cs 行: 399
堆栈跟踪:
[FormatException: 输入字符串的格式不正确。]
System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream)
System.Data.SqlClient.SqlCommand.ExecuteReader()
QFCY.addMember.btnAdd_Click(Object sender, EventArgs e) in c:\inetpub\wwwroot\qfcy\addmember.aspx.cs:399
System.Web.UI.WebControls.Button.OnClick(EventArgs e)
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
System.Web.UI.Page.ProcessRequestMain()
代码太长,分数太少
但是实在没法了
请各位路过的瞄一眼也好
给偶一个意见也行,好让偶慢慢调试啊
都快崩溃了
设置一个断点,监视你的comm的CommandText
观察了下局部变量,都一样
除了那个会费numeric变成float外都一样。
高人指点啊。
chengbo1983(努力学习.Net!(asp.net C#))
谢谢你的回复啊,黑暗中看见了光芒。
能否把我代码给你,你帮我调试下?
不是我懒,只是忙了一下午,还是不行。
抓狂啊
应该是字符串和整型的类型转换错误吧
建议楼主单步调试一下,找到错误的那句放上来
因为你的参数太多了,我们又不了解你的数据库中的字段的类型
一时间很难找出错误啊
楼上是好人啊!
不容易啊!
楼主也不要着急,这种问题本身就麻烦,楼主要有心理准备阿!
呵呵
楼上是好人啊!
不容易啊!
楼主也不要着急,这种问题本身就麻烦,楼主要有心理准备阿!
呵呵
多谢帮忙,我在调试看看
chengbo1983(努力学习.Net!(asp.net C#)) ,请放出的email或QQ,呵呵
chengbo@mail02.xhu.edu.cn
+ _value "1982-10-07" System.Object
_version Current System.Data.DataRowVersion
ActualSize <错误: 发生 {System.FormatException} 类型的异常> int
CoercedValue <错误: 发生 {System.FormatException} 类型的异常> System.Object
Collation <未定义的值> System.Data.SqlClient.SqlCollation
DbType Int32 System.Data.DbType
Direction Input System.Data.ParameterDirection
IsNullable false bool
Offset 0 int
ParameterName "@交费年限" string
查到错误源了
这里就发生异常了
我是将字符串"1982-10-07"赋值给datetime类型的。大家有什么办法,谢谢各位的帮助。
上面的错误我改过来的,交费年限是int类型,而我把时间类型赋给它,出错了
现在的提示是
源错误:
行 397: comm.CommandType=CommandType.StoredProcedure;
行 398: conn.Open();
行 399: comm.ExecuteNonQuery();
行 400: conn.Close();
行 401: }
源文件: c:\inetpub\wwwroot\qfcy\addmember.aspx.cs 行: 399
堆栈跟踪:
[FormatException: 该字符串未被识别为有效的布尔值。]
System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream)
System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
QFCY.addMember.btnAdd_Click(Object sender, EventArgs e) in c:\inetpub\wwwroot\qfcy\addmember.aspx.cs:399
System.Web.UI.WebControls.Button.OnClick(EventArgs e)
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
System.Web.UI.Page.ProcessRequestMain()
发这么多代码对你的问题来说并不好,你应该先跟踪,看看哪里不对。
存储过程和程序中用的数据格式应该一样,包括长度。
谢谢各位的帮忙,现在可以确定是出在数据的格式上面了。
但是不知道哪一个。现在没精力跟踪,洗完澡继续。
现在有个不理解的地方是:在SQL2000里,设置数据可以为空,当我把全部参数都设置为NULL时,它却提醒我需要什么什么参数。那数据库里的设置为允许空不是白设了,谢谢。