您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Web开发 >> ASP 当中数据库问题

ASP 当中数据库问题

来源:网络整理     时间:2016/7/25 16:41:21     关键词:

关于网友提出的“ ASP 当中数据库问题”问题疑问,本网通过在网上对“ ASP 当中数据库问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: ASP 当中数据库问题
描述:

在ASP代码数据库操纵这块  
string sql = "select * from UserInfo where userName=@userName";
两个UserName 分别具体指什么呢?


解决方案1:

@最好不要用在sql语言中 以免引起误解

解决方案2:

这里是sql parameter
简单的给个示例供参考
传统的查询语句的sql可能为
string sql="select * from users where user_id='"+Request.QueryString["uid"]+"'";
很显然,我们在这里拼接了字符串,这就给sql注入留下了可乘之机。
现在,我们要改写这样的语句,使用SqlParameter来做
SqlCommand SqlCmd = new SqlCommand(sql, SqlConn);
SqlParameter _userid = new SqlParameter("uid", SqlDbType.Int);
_userid.Value = Request.QueryString["u_id"];
SqlCmd.Parameters.Add(_userid);
这样,我们可以保证外接参数能被正确的转换,单引号这些危险的字符也会转义了,不会再对库造成威胁。
当然,这仅是一个示例而已,在真实的情况下,可能你还要对 Request.QueryString["u_id"]进行必要的检测与分析,这样才安全
所以,使用参数化的sql语句,是一种很好的做法
 
Dim sql As StringBuilder = New StringBuilder()
            sql.Append("")
            sql.Append("SELECT * FROM test")
            sql.Append(" WHERE  a= @p1 ")           
            Dim command As SqlCommand    =    dac.CreateCommand(sql.ToString())  'dac为自己写的类
            Dim param As SqlParameter = New SqlParameter()
            param .ParameterName = "@p1"
            param .SqlDbType = SqlDbType.NVarChar
            param .Value = b       'b为该函数的参数(ByVal b as String)
            command .Parameters.Add(param)
            Dim reader As SqlDataReader = command.ExecuteReader()
 

解决方案3:

引用 1 楼 showbo 的回复:
userName数据库表的字段
@userName,参数化参数的名称(MSSQLServer),如果是access数据库@userName用问号代替

同意 解决方案4:

username代表数据库中表字段名称
@username代表参数化名称|

解决方案5:

userName数据库表的字段
@userName,参数化参数的名称(MSSQLServer),如果是access数据库@userName用问号代替


以上介绍了“ ASP 当中数据库问题”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2917653.html

相关图片

相关文章