第一次做不好意思 
存储过程:
CREATE PROCEDURE insertmember
@userid char(10),@password char(10),@nickname char(10),@userpic image,
@sex char(1),@regtime datetime,@email varchar(50),@totaltime int, @role char(10)
 AS
insert into elementaryinfo (userid,passsword,nickname,userpic,sex,regtime,email,totaltime,role)
values
(@userid,@password,@nickname,@userpic,@sex,@regtime,@email,@totaltime,@role)
GOC#:
string strcon=ConfigurationSettings.AppSettings["sjk"];
SqlConnection con=new SqlConnection(strcon);
SqlCommand dbcomm=new SqlCommand("insertmember",con);
dbcomm.CommandType=CommandType.StoredProcedure;
SqlParameter[] parameters={new SqlParameter( "@userid",SqlDbType.Char,10),
new SqlParameter( "@passsword",SqlDbType.Char,10),new SqlParameter( "@nickname",SqlDbType.Char,10),
new SqlParameter( "@userpic",SqlDbType.Image,16),new SqlParameter( "@sex",SqlDbType.Char,1),
new SqlParameter( "@regtime",SqlDbType.DateTime,8),new SqlParameter( "@email",SqlDbType.VarChar,50),
new SqlParameter( "@totaltime",SqlDbType.Int,4),new SqlParameter( "@role",SqlDbType.Char,10)};
parameters[1].Value="ALFKI";
con.Open();
dbcomm.ExecuteNonQuery();
存储过程 'insertmember' 需要参数 '@userid',但未提供该参数。(以上各参数都可以为NULL)还有点问题:
1、一般来说  用户名、密码、日期、备注在SQLSERVER中用什么类型
2、能否针对问题1,给几个完整的例子 关于 Char int datetime image varchar 插入(存储过程+c#)

解决方案 »

  1.   

    没赋值吧
    parameters[0].Value=DBNull.Value;
      

  2.   

    string strcon=ConfigurationSettings.AppSettings["sjk"];
    SqlConnection con=new SqlConnection(strcon);
    SqlCommand dbcomm=new SqlCommand("insertmember",con);
    dbcomm.CommandType=CommandType.StoredProcedure;
    SqlParameter[] parameters={
    new SqlParameter( "@userid",SqlDbType.Char,10),
    new SqlParameter( "@passsword",SqlDbType.Char,10),
    new SqlParameter( "@nickname",SqlDbType.Char,10),
    new SqlParameter( "@userpic",SqlDbType.Image,16),
    new SqlParameter( "@sex",SqlDbType.Char,1),
    new SqlParameter( "@regtime",SqlDbType.DateTime,8),
    new SqlParameter( "@email",SqlDbType.VarChar,50),
    new SqlParameter( "@totaltime",SqlDbType.Int,4),
    new SqlParameter( "@role",SqlDbType.Char,10)};
    parameters[1].Value="ALFKI";string passsword="";
    if(!passsword!=null && passsword!="")
    {
          parameters[2].Value=passsword;
    }
    else
    {
          parameters[2].Value=System.DBNull.Value;
    }
    //.....等其他字段,要判断如果填充的值为空,要让它为System.DBNull.Valuecon.Open();
    dbcomm.ExecuteNonQuery();
    1、一般来说  用户名、密码、日期、备注在SQLSERVER中用什么类型
    一般来说  
    用户名   varchar
    密码     varchar/binary
    日期     datetime/varchar
    备注     text2、能否针对问题1,给几个完整的例子 关于 Char int datetime image varchar 插入(存储过程+c#)
    可以参考下
    http://singlepine.cnblogs.com/articles/288027.html
    http://singlepine.cnblogs.com/articles/266538.html
      

  3.   

    2位对不起  代码有点错误  应该是parameters[0].Value="ALFKI"; 就报存储过程 'insertmember' 需要参数 '@userid',但未提供该参数。
      

  4.   

    错误提示已经很明确了,就是缺少userid参数呀,你C#代码里没有传入userid参数
      

  5.   

    parameters[0] 不是userid参数吗  他是数组第一个亚