路径+DataRow+SqlPara防止sql注入

绝对路径:是从盘符开始的路径,形如
C:windowssystem32cmd.exe
相对路径:是从当前路径开始的路径,假如当前路径为C:windows
要描述上述路径,只需输入
system32cmd.exe
实际上,严格的相对路径写法应为
.system32cmd.exe
其中,.表示当前路径,在通道情况下可以省略,只有在特殊的情况下不能省略。


Session 的用法是什么?
简单说就是保存用户信息的

给你打个比方吧,就比如你在百度这里问问题,当你首先登入的时候,你的名字等等就要写入到session;
session("name")=request.form("name")这样的话,当你从登入的首页转到它的子页,你的名字就还有效,你有没有看见上面”我的提问,我的回答等等”否则的话,也就是你不用session,当你登入首页,再转到子页,你就等于没登入,你又要重新登入啦.知道了吗,也就是说,session是用来记录你的进程信息的,
假如当前路径为c:program files
要调用上述命令,则需要输入
..windowssystem32cmd.exe
其中,..为父目录。
当前路径如果为c:program filescommon files
则需要输入
....windowssystem32cmd.exe

另外,还有一种不包含盘符的特殊绝对路径,形如
windowssystem32cmd.exe
无论当前路径是什么,会自动地从当前盘的根目录开始查找指定的程序


../是上一层目录的意思 ,而~/是根目录的意思。
比如你建的项目是:A/B/C/Default.aspx在网页中使用../表示的就是B/,而~/表示的就是A/


在C盘下的WEB文件夹里有两个文件A.asp和B.asp~~
如果用A文件引用B文件里的内容~~那么在A.asp里的写法可以是
<!--#include file = "B.asp"-->
引号里面的就是B文件的名字,因为A和B都在同一个目录里~所以可以直接写文件名~~

那么如果B文件在A文件同目录下的一个image文件夹下呢~那么写法就是
<!--#include file = "image/B.asp"-->

以上说的就是相对路径(虚拟路径)~~

同样是A和B两个文件~~调用B文件也可以这样写:
<!--#include file = "C:WEBB.asp"-->
这就是绝对路径了~~
--------------------------------------------
SqlParameter 作用就是防止有特殊字符。一般情况下用于往存储过程传参

一般来说,在更新DataTable或是DataSet时,如果不采用SqlParameter,那么当输入的Sql语句出现歧义时,如字符串中含有单引号,程序就会发生错误,并且他人可以轻易地通过拼接Sql语句来进行注入攻击
------------------------------------------------------------
SQL中 @一般用来表示自己定义的一个变量
------------------------------------------
DataRow 是用来表示一个数据表的的数据行,所以,它不能单独new,因为一行记录,需要有架构(架构就是描述这一行都有哪些列,分别是什么数据类型,甚至索引字段是哪个,有无约束等)。

所以DataRow有需要在有架构的情况下,才可以创建。

所以,你必须要先构造一个DataTable,然后才能在相应的DataTable上创建一行。

示例代码:
Columns 列
DataTable memTable = new DataTable( "tableName" );
memTable.Columns.Add( new DataColumn( "ID", typeof( int ) ) );
memTable.Columns.Add( new DataColumn( "Username", typeof( string ) );
memTable.Columns.Add( new DataColumn( "Password", typeof( Guid ) );

DataRow row = memTable.NewRow();
row[ "ID" ] = 1;
row[ "Username" ] = "badbug";
row[ "Password" ] = Guid.NewGuid();

memTable.Rows.Add( row );

原文地址:https://www.cnblogs.com/ZkbFighting/p/8143376.html