首页 新闻 会员 周边

一个模糊查询的存储过程 ,点击按钮,查询textbox1里面的内容,谢谢

0
悬赏园豆:50 [已解决问题] 解决于 2018-07-16 09:24

/// <summary>
/// 通过SQL语句和条件查询一条数据库信息
/// </summary>
/// <param name="safeSql">存储过程名</param>
/// <param name="values">存储过程参数值</param>
/// <returns>数据库信息数量</returns>
public int GetScalar(string safeSql, params SqlParameter[] values)
{
SqlCommand cmd = new SqlCommand(safeSql, Connection);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddRange(values);
int result = Convert.ToInt32(cmd.ExecuteScalar());
return result;
}

 

 

protected void Button2_Click(object sender, EventArgs e)
{

string shuru = TextBox1.Text;

SqlParameter param = new SqlParameter("@name", SqlDbType.NVarChar,50,shuru);

param.Value = shuru;
db.GetScalar("mohuselect");
db.DataBindGridView(GridView1, "mohuselect");

}

 

 这是存储过程

create Procedure [dbo].[mohuselect]
@name nvarchar(50)
AS
BEGIN
SELECT*
FROM s_studentinfo
where name like '%'+@name+'%'
END

error其他信息: 过程或函数 'mohuselect' 需要参数 '@name',但未提供该参数。

一个人一直走的主页 一个人一直走 | 初学一级 | 园豆:157
提问于:2018-07-13 15:43
< >
分享
最佳答案
0

SqlParameter param = new SqlParameter("@name", SqlDbType.NVarChar,50,shuru);

param.Value = shuru;
db.GetScalar("mohuselect");
db.DataBindGridView(GridView1, "mohuselect");

这个GetScalar函数调用有问题吧?public int GetScalar(string safeSql, params SqlParameter[] values),人家需要两个参数你这个只传了一个,当然有问题了。还有人家要一个SqlParameter[]类型,不是SqlParameter类型

收获园豆:30
华临天下 | 小虾三级 |园豆:1501 | 2018-07-13 16:21
其他回答(3)
0

/// <param name="safeSql">存储过程名</param> 
/// <param name="values">存储过程参数值</param>

 

你现在只是写了一个存储过程名称,没有传值过去,所以肯定就找不到这个参数值了

雷。 | 园豆:775 (小虾三级) | 2018-07-13 17:26

不是把textbox1的值赋给value了吗  这个赋值有问题吗  求教了

支持(0) 反对(0) 一个人一直走 | 园豆:157 (初学一级) | 2018-07-13 17:28

@一个人一直走: 解决了 ok

支持(0) 反对(0) 雷。 | 园豆:775 (小虾三级) | 2018-07-16 09:48
0

db.GetScalar("mohuselect");

=>

db.GetScalar("mohuselect",new SqlParameter[]{param});

传参有误,另外,GetScalar内部传过来的参数最好检测下。

收获园豆:20
三当家 | 园豆:383 (菜鸟二级) | 2018-07-13 17:43
0

GetScalar(string safeSql, params SqlParameter[] values)   你只传了第一个参数,第二个没传过去。另外记得接收返回值。

.NET_海 | 园豆:480 (菜鸟二级) | 2018-07-16 09:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册