小弟新手,遇到一个问题没弄明白:
请看代码:
网页内代码:
 Entity.FunctionEntity fe = new Entity.FunctionEntity();
    DataAccess.FunctionDataAccess fda = new DataAccess.FunctionDataAccess();
    protected void Button1_Click(object sender, EventArgs e)
    {
        fe.FunctionName = this.tbPositionName.Text.ToString();
        fe.FunctionExplain = this.tbPositionExplain.Text.ToString();
        if (fda.PositionNameIsSelect(fe) == false)
        {
            if (fda.PositionNameAdd(fe) == true)
                Response.Write("<script>window.alert('操作成功!')</script>");
            else
                Response.Write("<script>window.alert('操作失败!')</script>");
        }
        else
            Response.Write("<script>window.alert('此职位已存在!')</script>");
    }
封装类文件的PositionNameAdd方法:
 //增加职位
        public bool PositionNameAdd(Entity.FunctionEntity fe)
        {
            SqlParameter[] p=new SqlParameter[2];
            p[0]=new SqlParameter("FunctionName",SqlDbType.Char,50);
            p[0].Value=fe.FunctionName;
            p[1]=new SqlParameter("FunctionExplain",SqlDbType.VarChar,200);
            p[1].Value=fe.FunctionExplain;
            if(dc.CompanyExe("FunctionNameInsert",p)==true)
                return true;
            else
                return false;
        }
数据成员类:
namespace Entity
{
    public class FunctionEntity
    {
        int functionid;
        string functionname;
        string functionexplain;        public FunctionEntity()
        {
            functionid = 0;
            functionname = string.Empty;
            functionexplain = string.Empty;
        }        public int FunctionID
        {
            get { return functionid; }
            set { functionid = value; }
        }        public string FunctionName
        {
            get { return functionname; }
            set { functionname = value; }
        }        public string FunctionExplain
        {
            get { return functionexplain; }
            set { functionexplain = value; }
        }        
    }}
数据库非查询操作方法:
  //执行带参数的更新操作        public bool CompanyExe(string sql, SqlParameter[] p)
        {
            try
            {
                con.ConnectionString = sqlstring;
                con.Open();
                com.Connection = con;
                com.CommandType = CommandType.StoredProcedure;
                com.CommandText = sql;
                for (int i = 0; i < p.GetLength(0); i++)
                {
                    com.Parameters.Add(p[i]);
                }
                int result = com.ExecuteNonQuery();
                if (result > 0)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
            catch (SqlException)
            {
                return false;
            }
            finally
            {
                con.Close();
                con.Dispose();
                com.Dispose();
            }
           
        }
存储过程:
ALTER procedure [dbo].[FunctionNameInsert]
@FunctionName char(50),
@FunctionExplain varchar(200)
as
begin 
insert into Functions  (FunctionName,FunctionExplain)
values (@FunctionName,@FunctionExplain);
end现在问题是插入数据操作不成功,经调试p[]数组只有1个成员,p[0].value="李明",而在进行数据库插入方法中的com.Parameters[]中有两个成员,查看有com.Parameters[0].value="李明",com.Parameters[1].value="李明"!
请大神指教!问题在哪?请高手指教!急!insert

解决方案 »

  1.   

    你要一步一步来,才明白为什么
    com.Parameters[1].value->p->fe-> fe.FunctionExplain = this.tbPositionExplain.Text.ToString();你监视到值的结果一步一步来看是多少?
      

  2.   


    SqlParameter[] p=new SqlParameter[2];
                p[0]=new SqlParameter("FunctionName",SqlDbType.Char,50);
                p[0].Value=fe.FunctionName;
                p[1]=new SqlParameter("FunctionExplain",SqlDbType.VarChar,200);
                p[1].Value=fe.FunctionExplain;
    这么些试试SqlParameter[] p=new SqlParameter[]{
     new SqlParameter("FunctionName",SqlDbType.Char),
    new SqlParameter("FunctionExplain",SqlDbType.VarChar),
    };
    p[0].Value=fe.FunctionName;
    p[1].Value=fe.FunctionExplain;
      

  3.   

    是高手的可加我QQ:421827750,QQ中方便请教!
      

  4.   

       SqlParameter[] p=new SqlParameter[2];
                p[0]=new SqlParameter("@FunctionName",SqlDbType.Char,50);
                p[0].Value=fe.FunctionName;
                p[1]=new SqlParameter("@FunctionExplain",SqlDbType.VarChar,200);
                p[1].Value=fe.FunctionExplain;
      

  5.   

    @是SQL Server定义变量必需要加的