| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1236 人关注过本帖
标题:[求助]给SqlDataSource声明参数
只看楼主 加入收藏
叶底蝉
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2006-6-9
收藏
 问题点数:0 回复次数:3 
[求助]给SqlDataSource声明参数

string ID="'%"+TextBox1.Text+"%'";
SqlDataSource1.SelectCommand = "select * from employee where Emp_ID like @ID";
SqlParameter para = new SqlParameter("@ID", SqlDbType.Char, 9);
para.Value = ID;
SqlDataSource1.SelectParameters.Add(para);

这样声明参数错在什么地方

应该怎么声明

编译器错误信息: CS1502: 与“System.Web.UI.WebControls.ParameterCollection.Add(System.Web.UI.WebControls.Parameter)”最匹配的重载方法具有一些无效参数

源错误:

行 94:         SqlParameter para = new SqlParameter("@ID", SqlDbType.Char, 9);
行 95:         para.Value = ID;
行 96:         SqlDataSource1.SelectParameters.Add(para);
行 97:     }
行 98: }

搜索更多相关主题的帖子: 声明参数 para Add STRONG 
2006-09-24 01:19
netting2old
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-9-22
收藏
得分:0 

你能告诉我为什么你要动态添加controlparameter ?

[此贴子已经被作者于2006-9-24 10:41:22编辑过]


不偏之謂中,不易之謂庸。 中者天下之正道,庸者天下之定理。 Happy netting everyday
2006-09-24 10:36
叶底蝉
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2006-6-9
收藏
得分:0 

先说一下,我的目的,我想通过单击这个Button在GridView中显示employee中"Emp_ID"包含TextBox1中字段的所有内容(模糊查询)
后来经过查询,把代码改成下面这样了
protected void Button1_Click(object sender, EventArgs e)
{
SqlDataSource1.SelectParameters.Clear();
string txt="'%"+TextBox1.Text+"%'";
SqlDataSource1.SelectCommand = "select * from employee where Emp_ID like @ID ";
SqlDataSource1.SelectParameters.Add("ID", TypeCode.String, txt);
}
我这样写的事件,结果为空

假如我 string txt=TextBox1.Text;
SqlDataSource1.SelectCommand = "select * from employee where Emp_ID = @ID ";
换成完全匹配的话,就可以查出结果,但是这样的话,我就必须写完全一样的编号,这不是我想要的结果

我想不明白为什么换成like就不好使了~

本来可以直接写成
SqlDataSource1.SelectCommand = "select * from employee where Emp_ID like '%"+TextBox1.Text+"%'";
这样写也是正常的,但是不是说这样容易被注入攻击吗?

2006-09-24 22:33
凌枫影
Rank: 2
等 级:新手上路
威 望:3
帖 子:163
专家分:0
注 册:2006-5-10
收藏
得分:0 

你就用SqlDataSource1.SelectCommand = "select * from employee where Emp_ID like '%"+TextBox1.Text+"%'";
也可以的

防注入VS早就能做到了
你用str.Replace("'","''")
把一個’換成兩個‘’
這樣就可以了


他說參數不對
可能是指你的長度超出,你只定義了9個
或者是你參數中出現了%%


2006-09-25 08:52
快速回复:[求助]给SqlDataSource声明参数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017589 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved