返回首页

public int Insert(Student s)

       {

           con.Open();

           cmd = new SqlCommand("Insert into Students (stdid, studname) values" + "(@stdid, @studname)", con);

           SqlParameter[] prm = new SqlParameter[2];

           prm[0] = new SqlParameter("@stdid",SqlDbType.Int);

           prm[1] = new SqlParameter("@studname", SqlDbType.VarChar, 50);

           prm[0].Value = s.studentid;

           prm[1].Value = s.studentname;

           cmd.CommandType = CommandType.Text;

           return cmd.ExecuteNonQuery();

 

       }

我得到这样的错误。

必须声明标量变量"@ stdid"。

回答

评论会员:米卡Wendelius 时间:2012/02/07
你不加参数的命令,所以添加到您的代码:
...

cmd.Parameters.Add(prm[0]);

cmd.Parameters.Add(prm[1]);

...
评论会员:OriginalGriff 时间:2012/02/07
你声明一个新的参数块,但你不使用它
尝试:
       public int Insert(Student s)

       {

           con.Open();

           cmd = new SqlCommand("Insert into Students (stdid, studname) values" + "(@stdid, @studname)", con);

           // SqlParameter[] prm = new SqlParameter[2];

           // prm[0] = new SqlParameter("@stdid",SqlDbType.Int);

           // prm[1] = new SqlParameter("@studname", SqlDbType.VarChar, 50);

           // prm[0].Value = s.studentid;

           // prm[1].Value = s.studentname;

           cmd.Parameters.AddWithValue("@stdid", s.studentid);

           cmd.Parameters.AddWithValue("@studname", s.studentname);

           cmd.CommandType = CommandType.Text;

           return cmd.ExecuteNonQuery();

        }
注意Parameters.Add(你是如何有效使用)是折旧AddWithValue青睐,如上图所示
评论会员:的。Monjurul哈比卜 时间:2012/02/07
尝试以下几点:

{A}
{A2的}