我正在尝试根据另一个文本框填充文本框值,但我无法填充其他文本框.我正在分享我的代码,请指导我最好的解决方案
行动方法:
public JsonResult AgreementNo(string id)
{
string no;
string _str = id;
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["constr"].ToString());
SqlCommand cmd = new SqlCommand("SELECT top(1) num from loan where id=@str",con);
cmd.Parameters.AddWithValue("@str",id);
cmd.CommandType = CommandType.Text;
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
no = ds.Tables[0].Rows[0]["num"].ToString();
return Json(new
{
no = no
},JsonRequestBehavior.AllowGet);
}
脚本:
$("#BarrowerName").blur(function () {
$.ajax({
url: '@Url.Action("AgreementNo","Home")',// url: '@Url.Action("AgreementNo",dataType: "json",data: JSON.stringify({ id: $("#BarrowerName").val() }),type:"POST",async: false,contentType: 'application/json,charset=utf-8',sucess: function (data) {
$("#AgreementNo").val(data.no)
response(data);
}
});
});
它抛出错误如下:将nvarchar值”转换为数据类型int时转换失败.
最佳答案
首先,你的错误在这一行: –
cmd.Parameters.AddWithValue("@str",id);
由于您尝试将整数值传递给NVARCHAR列,请更改您的代码,如下所示: –
cmd.Parameters.Parameters.Add("@str",SqlDbType.NVarChar).Value = id;
请阅读: – Can we stop using AddWithValue
现在,一旦修复,将jQuery代码从成功更改为成功,它应该工作!
除此之外,使用using声明自动处理贵重物品资源,如下所示: –
string CS = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
using(SqlConnection con = new SqlConnection(CS))
using(SqlCommand cmd = new SqlCommand("SELECT top(1) num from loan where id=@str",con))
{
cmd.Parameters.Parameters.Add("@str",SqlDbType.NVarChar).Value = id;
cmd.CommandType = CommandType.Text;
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
no = ds.Tables[0].Rows[0]["num"].ToString();
return Json(new
{
no = no
},JsonRequestBehavior.AllowGet);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。