存储过程
ALTER PROCEDURE dbo.StoredProcedure1
@UserName VarChar
AS
select MessageID,UserName,Title from Pro_Message where UserName ='%'+@UserName+'%'类库中代码
public SqlParameter CreateInParam(string ParamName, SqlDbType DbType, int Size, object Value)
{
return CreateParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
}
public SqlParameter CreateParam(string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value)
{
SqlParameter param; ///当参数大小为0时,不使用该参数大小值
if (Size > 0)
{
param = new SqlParameter(ParamName, DbType, Size);
}
else
{
///当参数大小为0时,不使用该参数大小值
param = new SqlParameter(ParamName, DbType);
} ///创建输出类型的参数
param.Direction = Direction;
if (!(Direction == ParameterDirection.Output && Value == null))
{
param.Value = Value;
} ///返回创建的参数
return param;
}
public DataSet RunProc_GetDS(string sp_name, SqlParameter[] p)
{ if (sp_name.Trim() == "")
{
ErrorString = "SQL语句不能为空!"; return null;
}
con = new SqlConnection("Data Source=.;Initial Catalog=TurpanTax;Integrated Security=True");
cmd = new SqlCommand();
cmd.CommandText = sp_name;
cmd.Parameters.Clear(); ///添加把存储过程的参数
if (p != null)
{
for (int i = 0; i < p.Length; i++)
{
if (p[i].Value == null)
{
p[i].Value = "";
}
}
foreach (SqlParameter parameter in p)
{
cmd.Parameters.Add(parameter);
}
} ///设置SqlDataAdapter对象
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.SelectCommand.CommandType = CommandType.StoredProcedure;
da.SelectCommand.Connection = con;
ds = new DataSet();
///读取数据
da.Fill(ds);
return ds;
}
后台
protected void Btn_dataquery_Click(object sender, ImageClickEventArgs e)
{
DataOperator dao = new DataOperator();
SqlParameter[] paralist1 ={ dao.CreateInParam("@UserName", SqlDbType.VarChar, 128, "UserName") };
GridView1.DataSource = dao.RunProc_GetDS("StoredProcedure1", paralist1).Tables[0].DefaultView;
GridView1.DataBind(); }
我想实现姓名模糊查询,但后面才发现我的TextBox根本没有赋值给参数,我在后台该如何实现呢。高手能具体点吗?我才学.net不久,先谢谢了
ALTER PROCEDURE dbo.StoredProcedure1
@UserName VarChar
AS
select MessageID,UserName,Title from Pro_Message where UserName ='%'+@UserName+'%'类库中代码
public SqlParameter CreateInParam(string ParamName, SqlDbType DbType, int Size, object Value)
{
return CreateParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
}
public SqlParameter CreateParam(string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value)
{
SqlParameter param; ///当参数大小为0时,不使用该参数大小值
if (Size > 0)
{
param = new SqlParameter(ParamName, DbType, Size);
}
else
{
///当参数大小为0时,不使用该参数大小值
param = new SqlParameter(ParamName, DbType);
} ///创建输出类型的参数
param.Direction = Direction;
if (!(Direction == ParameterDirection.Output && Value == null))
{
param.Value = Value;
} ///返回创建的参数
return param;
}
public DataSet RunProc_GetDS(string sp_name, SqlParameter[] p)
{ if (sp_name.Trim() == "")
{
ErrorString = "SQL语句不能为空!"; return null;
}
con = new SqlConnection("Data Source=.;Initial Catalog=TurpanTax;Integrated Security=True");
cmd = new SqlCommand();
cmd.CommandText = sp_name;
cmd.Parameters.Clear(); ///添加把存储过程的参数
if (p != null)
{
for (int i = 0; i < p.Length; i++)
{
if (p[i].Value == null)
{
p[i].Value = "";
}
}
foreach (SqlParameter parameter in p)
{
cmd.Parameters.Add(parameter);
}
} ///设置SqlDataAdapter对象
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.SelectCommand.CommandType = CommandType.StoredProcedure;
da.SelectCommand.Connection = con;
ds = new DataSet();
///读取数据
da.Fill(ds);
return ds;
}
后台
protected void Btn_dataquery_Click(object sender, ImageClickEventArgs e)
{
DataOperator dao = new DataOperator();
SqlParameter[] paralist1 ={ dao.CreateInParam("@UserName", SqlDbType.VarChar, 128, "UserName") };
GridView1.DataSource = dao.RunProc_GetDS("StoredProcedure1", paralist1).Tables[0].DefaultView;
GridView1.DataBind(); }
我想实现姓名模糊查询,但后面才发现我的TextBox根本没有赋值给参数,我在后台该如何实现呢。高手能具体点吗?我才学.net不久,先谢谢了
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货