string strUpdate="CREATE PROCEDURE sp_update @name varchar(50), @id int AS update studenttable set name=@name where studentid=@id";
if(cn==null)
cn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings.Get("cm"));
cn.Open();
SqlCommand temp=new SqlCommand(strUpdate,cn);
temp.ExecuteNonQuery();
if(cmd==null)
cmd=new SqlCommand("select name,sex,studentid,password from studenttable",cn);
cmd.CommandType=CommandType.StoredProcedure;
cmd=new SqlCommand("sp_update",cn);
cmd.Parameters.Add("@name",SqlDbType.VarChar,50);
cmd.Parameters.Add("@id",SqlDbType.Int,4);
cmd.Parameters["@name"].Value="sdfsfsfs";
cmd.Parameters["@id"].Value=34;
cmd.ExecuteNonQuery();第 1 行: 'sp_update' 附近有语法错误。???????

解决方案 »

  1.   

    好像少了declare  声明变量.
      

  2.   

    修改 CREATE PROCEDURE 成 CREATE proc 
    ------------------
      

  3.   

    感觉sp_update象系统的名字,改个名字不行吗.
      

  4.   

    sp_update 换 成[sp_update]试一下
      

  5.   

    sp 开头的好象是sql server 默认的存储过程
    好象不允许用这个来命名
    改存储过程的名字吧
      

  6.   

    string strUpdate="CREATE PROCEDURE sp_update @name varchar(50), @id int AS update studenttable set name=@name where studentid=@id";你这样写只能执行一次,第二次因为过程在DB已经有了。建立前要先drop
      

  7.   

    create proc sp_update 
    @name varhcar(50),
    @id int
    as
    update studenttable set name=@name where studentid=@id