OleDbConnection con=Data.CreateCon();
con.Open();
OleDbCommand cmd=new OleDbCommand("update [config] set [add]=@add,[smtp]=@smtp,[name]=@name,[pass]=@pass",con);
cmd.Parameters["@add"].Value=add;
cmd.Parameters["@smtp"].Value=smtp;
cmd.Parameters["@name"].Value=name;
cmd.Parameters["@pass"].Value=pass;
cmd.ExecuteNonQuery();
con.Close();我执行了这个代码,可是数据库里什么反应也没有,郁闷 中` ` ` ` ` 
如果写错了,该怎么改呢

解决方案 »

  1.   

    加个SqlParameter [] spm=new SqlParameter[12];
    spm[0]=new SqlParameter("@CategoryName",SqlDbType.VarChar);
    spm[0].Value =voshanguserinfo.SHOPNAME;i=this.ExecProc1("传存储过程的名字",spm);
    return i;
    调用
    public DataSet ExecProc1(string procName,SqlParameter [] sp)//执行查询的存储过程
    {
    SqlConnection sc=this.getSqlConnection();
    sc.Open();
    SqlCommand sm=sc.CreateCommand();
    //sm.Connection=sc;
    sm.CommandText=procName;
    sm.CommandType=CommandType.StoredProcedure;foreach(SqlParameter s in sp)
    {
    sm.Parameters.Add(s);
    }
    SqlDataAdapter sda=new SqlDataAdapter();
    sda.SelectCommand=sm;
    DataSet ds=new DataSet();
    sda.Fill(ds);
    int i=ds.Tables[0].Rows.Count;
    sc.Close();
    return ds;
    }
      

  2.   

    没什么麻烦的,你把(procName)存储过程的名字和(sp)参数传过去就可以拉
    public DataSet ExecProc1(string procName,SqlParameter [] sp)//执行查询的存储过程
    {
    SqlConnection sc=this.getSqlConnection();
    sc.Open();
    SqlCommand sm=sc.CreateCommand();
    //sm.Connection=sc;
    sm.CommandText=procName;
    sm.CommandType=CommandType.StoredProcedure;foreach(SqlParameter s in sp)
    {
    sm.Parameters.Add(s);
    }
    SqlDataAdapter sda=new SqlDataAdapter();
    sda.SelectCommand=sm;
    DataSet ds=new DataSet();
    sda.Fill(ds);
    int i=ds.Tables[0].Rows.Count;
    sc.Close();
    return ds;
    }不需要改
      

  3.   

    我现在已经就业拉,可惜没上第二学年(没钱),现在自学.NET四个月,过段时间到上海去发展,和同学会合
      

  4.   

    应该有个cmd.createparemeters的方法你的cmd参数不能直接就赋值了,要先创建