StringBuilder strSql=new StringBuilder();
strSql.Append("update job_searcher set ");
strSql.Append("UserCode=@UserCode,");
strSql.Append("Searcher=@Searcher,");
strSql.Append("education=@education,");
strSql.Append("experience=@experience,");
strSql.Append(" where jobid=@jobid");
SqlParameter[] parameters = {
new SqlParameter("@UserCode", SqlDbType.VarChar,39),
new SqlParameter("@Searcher", SqlDbType.VarChar,50),
new SqlParameter("@education", SqlDbType.VarChar,10),
new SqlParameter("@experience", SqlDbType.VarChar,20),
new SqlParameter("@jobid", SqlDbType.Char,20)};
parameters[0].Value = model.UserCode;
parameters[1].Value = model.Searcher;
parameters[2].Value = model.education;
parameters[3].Value = model.experience;
parameters[4].Value = model.jobid;
DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);
为什么 老是提示 "必须声明变量 '@jobid',我明明 有声明 啊?求救?
strSql.Append("update job_searcher set ");
strSql.Append("UserCode=@UserCode,");
strSql.Append("Searcher=@Searcher,");
strSql.Append("education=@education,");
strSql.Append("experience=@experience,");
strSql.Append(" where jobid=@jobid");
SqlParameter[] parameters = {
new SqlParameter("@UserCode", SqlDbType.VarChar,39),
new SqlParameter("@Searcher", SqlDbType.VarChar,50),
new SqlParameter("@education", SqlDbType.VarChar,10),
new SqlParameter("@experience", SqlDbType.VarChar,20),
new SqlParameter("@jobid", SqlDbType.Char,20)};
parameters[0].Value = model.UserCode;
parameters[1].Value = model.Searcher;
parameters[2].Value = model.education;
parameters[3].Value = model.experience;
parameters[4].Value = model.jobid;
DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);
为什么 老是提示 "必须声明变量 '@jobid',我明明 有声明 啊?求救?
以前我也出现过这样的问题,调整一下顺序就好了。
new SqlParameter("@jobid", SqlDbType.Char,20)};全用VARCHAR,看看
这是用 SQL 语句 , 并且我的 每一个对应都 仔细检查过啊?
错误解决了,原来: 上面的 方法我写在一个 BLL.dll 中, 而编译 选项中 是跳过编译的,
所以我改了以后,
即使是调试 过程中 加载的 也是 老的 没有改过的 BLL.dll, 所以出错了,
问题是 重新 把这个 BLL.dll 重编译, 重新加载 ,就OK ,我也是很纳闷, 明明是 对的,怎么出这么怪的问题顺便 把 这个方法也 给大家, 谢谢大家的 回帖。
/// 执行SQL语句,返回影响的记录数
/// </summary>
/// <param name="SQLString">SQL语句</param>
/// <returns>影响的记录数</returns>
public static int ExecuteSql(string SQLString,params SqlParameter[] cmdParms)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand())
{
try
{
PrepareCommand(cmd, connection, null,SQLString, cmdParms);
int rows=cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return rows;
}
catch(System.Data.SqlClient.SqlException E)
{
throw new Exception(E.Message);
}
}
}
}