mycom.Parameters.Add("@Companyid",System.Convert.ToInt32(L_compnay.Text.Trim()));//int型
mycom.Parameters.Add("@Invest_adress",T_Invest_adress.Text.ToString().Trim());
mycom.Parameters.Add("@YcheckDate",System.Convert.ToDatetime(T_ycheckDate.Text.Trim()));//datetime型
mycom.Parameters.Add("@ServerDate",T_ServerDate.Text.Trim());//datetime型
提交后提示:将VARCHAR转换为int时出错
另外下面的时间转换时也出错
要怎样解决?????试了很多方法也不行,急啊!
mycom.Parameters.Add("@Invest_adress",T_Invest_adress.Text.ToString().Trim());
mycom.Parameters.Add("@YcheckDate",System.Convert.ToDatetime(T_ycheckDate.Text.Trim()));//datetime型
mycom.Parameters.Add("@ServerDate",T_ServerDate.Text.Trim());//datetime型
提交后提示:将VARCHAR转换为int时出错
另外下面的时间转换时也出错
要怎样解决?????试了很多方法也不行,急啊!
改
mycom.Parameters.Add("@Companyid", SqlDataType.Int32);
mycom.Parameters["@Companyid"].Value = System.Convert.ToInt32(L_compnay.Text.Trim());
mycom.Parameters.Add("@Invest_adress", SqlDataType.VarChar);
mycom.Parameters["@Invest_adress"].Value = T_Invest_adress.Text.ToString().Trim();
mycom.Parameters.Add("@YcheckDate", SqlDataType.DateTime);
mycom.Parameters["@YcheckDate"].Value = System.Convert.ToDatetime(T_ycheckDate.Text.Trim());如果是 2.0,可以使用 AddWithValue() 方法,这样可以不用声明类型。
SqlDataType写错了
是SqlDbType
mstr+=" ,@ReferDepartment,@ResultStatus,@IsTransact,@TranDate,@IsOk,@Re";
SqlCommand mycom=new SqlCommand(mstr,gxlcon);
mycom.Parameters.Add("@iinsertoreditid",Request.QueryString["ID"].ToString().Trim());
mycom.Parameters.Add("@Companyid",SqlDbType.Int);
mycom.Parameters["@Companyid"].Value = System.Convert.ToInt32(L_compnay.Text.Trim());
mycom.Parameters.Add("@Invest_adress",T_Invest_adress.Text.ToString().Trim());
mycom.Parameters.Add("@YcheckDate",SqlDbType.DateTime);
mycom.Parameters["@YcheckDate"].Value = System.Convert.ToDateTime(T_ycheckDate.Text.Trim());
mycom.Parameters.Add("@ServerDate",SqlDbType.DateTime);
mycom.Parameters["@ServerDate"].Value = System.Convert.ToDateTime(T_ServerDate.Text.Trim());
if (RB_ts0.Checked)
{
mycom.Parameters.Add("@IsLodge","1");
}
else
{
mycom.Parameters.Add("@IsLodge","0");
}
mycom.Parameters.Add("@Major_content",T_Major_content.Text.Trim());
if (RB1_zb.Checked)
{
mycom.Parameters.Add("@Isdiversion","1");
}
else
{
mycom.Parameters.Add("@Isdiversion","0");
}
mycom.Parameters.Add("@SubconPart",T_SubconPart.Text.Trim());
mycom.Parameters.Add("@ReferPoblem",T_ReferPoblem.Text.Trim());
mycom.Parameters.Add("@ReferDepartment",T_ReferDepartment.Text.Trim());
mycom.Parameters.Add("@ResultStatus",T_ResultStatus.Text.Trim());
if (R_bj0.Checked)
{
mycom.Parameters.Add("@IsTransact","1");
}
else
{
mycom.Parameters.Add("@IsTransact","0");
}
mycom.Parameters.Add("@TranDate",SqlDbType.DateTime);
mycom.Parameters["@TranDate"].Value=System.Convert.ToDateTime(T_TranDate.Text.Trim());
if (RB_Ok0.Checked)
{
mycom.Parameters.Add("@IsOk","1");
}
else
{
mycom.Parameters.Add("@IsOk","0");
}
mycom.Parameters.Add("@Re",T_Re.Text.Trim());
mycom.Connection.Open();
mycom.ExecuteNonQuery();
mycom.Connection.Close();
}
编译过了,但还是提示:将数据类型 nvarchar 转换为 int 时出错。高手请帮我检查一下是哪不对??
都要确定类型先
然后设置Value
或者就是 AddWithValue()
string mstr="exec update_insert_Foreign_server @iinsertoreditid,@Companyid,@Invest_adress,@YcheckDate,@ServerDate,@IsLodge,@Major_content,@Isdiversion,@SubconPart,@ReferPoblem";
mstr+=" ,@ReferDepartment,@ResultStatus,@IsTransact,@TranDate,@IsOk,@Re";
SqlCommand mycom=new SqlCommand(mstr,gxlcon);
mycom.Parameters.Add("@iinsertoreditid",SqlDbType.Int);
mycom.Parameters["@iinsertoreditid"].Value=System.Convert.ToInt32(Request.QueryString["ID"].Trim());
mycom.Parameters.Add("@Companyid",SqlDbType.Int);
mycom.Parameters["@Companyid"].Value = System.Convert.ToInt32(L_compnay.Text.Trim());
mycom.Parameters.Add("@Invest_adress",T_Invest_adress.Text.ToString().Trim());
mycom.Parameters.Add("@YcheckDate",SqlDbType.DateTime);
mycom.Parameters["@YcheckDate"].Value = System.Convert.ToDateTime(T_ycheckDate.Text.Trim());
mycom.Parameters.Add("@ServerDate",SqlDbType.DateTime);
mycom.Parameters["@ServerDate"].Value = System.Convert.ToDateTime(T_ServerDate.Text.Trim());
if (RB_ts0.Checked)
{
mycom.Parameters.Add("@IsLodge",SqlDbType.Int);
mycom.Parameters["@IsLodge"].Value=System.Convert.ToInt32("1");
}
else
{
mycom.Parameters.Add("@IsLodge",SqlDbType.Int);
mycom.Parameters["@IsLodge"].Value=System.Convert.ToInt32("0");
}
mycom.Parameters.Add("@Major_content",SqlDbType.NChar);
mycom.Parameters["@Major_content"].Value=System.Convert.ToChar(T_Major_content.Text.Trim());
if (RB1_zb.Checked)
{
mycom.Parameters.Add("@Isdiversion",SqlDbType.Int);
mycom.Parameters["@Isdiversion"].Value=System.Convert.ToInt32("1");
}
else
{
mycom.Parameters.Add("@Isdiversion",SqlDbType.Int);
mycom.Parameters["@Isdiversion"].Value=System.Convert.ToInt32("0");
}
mycom.Parameters.Add("@SubconPart",SqlDbType.NChar);
mycom.Parameters["@SubconPart"].Value=System.Convert.ToChar(T_SubconPart.Text.Trim());
mycom.Parameters.Add("@ReferPoblem",SqlDbType.NChar);
mycom.Parameters["@ReferPoblem"].Value=System.Convert.ToChar(T_ReferPoblem.Text.Trim());
mycom.Parameters.Add("@ReferDepartment",SqlDbType.NChar);
mycom.Parameters["@ReferDepartment"].Value=System.Convert.ToChar(T_ReferDepartment.Text.Trim());
mycom.Parameters.Add("@ResultStatus",SqlDbType.NChar);
mycom.Parameters["@ResultStatus"].Value=System.Convert.ToChar(T_ResultStatus.Text.Trim());
if (R_bj0.Checked)
{
mycom.Parameters.Add("@IsTransact",SqlDbType.Int);
mycom.Parameters["@IsTransact"].Value=System.Convert.ToInt32("1");
}
else
{
mycom.Parameters.Add("@IsTransact",SqlDbType.Int);
mycom.Parameters["@IsTransact"].Value=System.Convert.ToInt32("0");
}
mycom.Parameters.Add("@TranDate",SqlDbType.DateTime);
mycom.Parameters["@TranDate"].Value=System.Convert.ToDateTime(T_TranDate.Text.Trim());
if (RB_Ok0.Checked)
{
mycom.Parameters.Add("@IsOk",SqlDbType.Int);
mycom.Parameters["@IsOk"].Value=System.Convert.ToInt32("1");
}
else
{
mycom.Parameters.Add("@IsOk",SqlDbType.Int);
mycom.Parameters["@IsOk"].Value=System.Convert.ToInt32("0");
}
mycom.Parameters.Add("@Re",SqlDbType.NVarChar);
mycom.Parameters["@Re"].Value=System.Convert.ToChar(T_Re.Text.Trim());
mycom.Connection.Open();
mycom.ExecuteNonQuery();
mycom.Connection.Close();
}
还在出错!!!!
时间传入的时候不能为空,.net和sql 的时间范围不一样,存储的日期范围是从1753 年1 月1 日开始,到9999 年12 月31 日结束