小弟新手,遇到一个问题没弄明白:
请看代码:
网页内代码:
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
请看代码:
网页内代码:
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
com.Parameters[1].value->p->fe-> fe.FunctionExplain = this.tbPositionExplain.Text.ToString();你监视到值的结果一步一步来看是多少?
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;
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;