以下是代码:
SqlConnection con = new SqlConnection(connectionString);
string sql = "insert into student(std_year,std_faculty,std_roll,std_name) values (@year,@faculty,@roll,@name)";
//string sql = "update current_player set batsman1_name=@batsman1_name,batsman2_name=@batsman2_name,bowler_name=@bowler_name";
SqlCommand cmd = new SqlCommand(sql, con);
cmd.Parameters.AddWithValue("@std_year", year);
cmd.Parameters.AddWithValue("@std_faculty", faculty);
cmd.Parameters.AddWithValue("@std_roll", Convert.ToInt32(txtroll.Text));
cmd.Parameters.AddWithValue("@std_name", txtname.Text);
try
{
con.Open();
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw ex;
}
finally
{
con.Close();
}
错误表明它无法识别标量变量@year
,并表示必须声明它。任何人都可以帮助我吗?
答案 0 :(得分:1)
试试这个 将参数值更改为
cmd.Parameters.AddWithValue("@std_year", year);
cmd.Parameters.AddWithValue("@std_faculty", faculty);
cmd.Parameters.AddWithValue("@std_roll", Convert.ToInt32(txtroll.Text));
cmd.Parameters.AddWithValue("@std_name", txtname.Text);
到这些
cmd.Parameters.AddWithValue("@year", year);
cmd.Parameters.AddWithValue("@faculty", faculty);
cmd.Parameters.AddWithValue("@roll", Convert.ToInt32(txtroll.Text));
cmd.Parameters.AddWithValue("@name", txtname.Text);
您必须传递与您在查询中写入的名称相同的参数。
答案 1 :(得分:0)
问题是您尚未定义@year
参数
而不是这个
cmd.Parameters.AddWithValue("@std_year", year);
写这个
cmd.Parameters.AddWithValue("@year", year);
答案 2 :(得分:0)
所有参数名称都是错误的。您的SQL语句包含参数@year,@faculty,@roll,@name
,但您尝试添加名为@std_year
等的参数
您需要在AddWithValue
中传递参数名称,如下所示:
cmd.Parameters.AddWithValue("@year", year);
cmd.Parameters.AddWithValue("@faculty", faculty);
cmd.Parameters.AddWithValue("@roll", Convert.ToInt32(txtroll.Text));
cmd.Parameters.AddWithValue("@name", txtname.Text);