SqlConnection Conn = new SqlConnection(@"....");SqlParameter para1=new SqlParameter ("@newusername",SqlDbType.VarChar,10);
para1.Value="test";
SqlParameter para2=new SqlParameter ("@upwd",SqlDbType.VarChar,32);
para2.Value="test";
SqlCommand Cmd = new SqlCommand("InsertNewUser", Conn);
Conn.Open();
Cmd.Parameters.Add(para1);
Cmd.Parameters.Add(para2);Cmd.ExecuteNonQuery();
Conn.Close();
---------------------------------
存储过程是
ALTER PROCEDURE master.InsertNewUser
(
@newusername varchar(10),
@upwd  varchar(32)
)
AS
INSERT INTO userinfo(username,userpassword) VALUES (@newusername,@upwd); 
RETURN
这个测试没有问题
-----------------
错误提示
异常详细信息: System.Data.SqlClient.SqlException: 第 1 行: 'InsertNewUser' 附近有语法错误。
源错误: 行 101: Cmd.Parameters.Add(para2);
行 102:
行 103: Cmd.ExecuteNonQuery();
行 104: Conn.Close();-----------------------------〕再问一个 密码如果用md5加密后
数据库用什么类型保存了? 多少位?
 

解决方案 »

  1.   

    master.InsertNewUser 你这个存储过程名有语法错误. 改成InsertNewUser试试
      

  2.   

    加上
    Cmd.CommandType = CommandType.StoredProcedure;
      

  3.   

    ALTER PROCEDURE master.InsertNewUser
    改成
    CREATE PROCEDURE master.InsertNewUser
      

  4.   

    System.Data.SqlClient.SqlException表示你的sql有问题,在查询分析器里执行下看看,
    md5保存数据,nvarchar和nvarchar都可以,
      

  5.   

    密码如果用md5加密后数据库用nvarchar(128)
      

  6.   

    cmd.CommandType = CommandType.StoredProcedure;
    指定所执行的是存储过程
    md5用varchar,15位即可
      

  7.   

    加上
    Cmd.CommandType = CommandType.StoredProcedure;
    --------------
    正解 。