8种机械键盘轴体对比
本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?
DataTable 进行 HtmlEncode
前言:
此篇是针对 Cross-Site Scripting 类问题的纪录,将 DataTable 中的数据做完整处理的写法。
方法(一):protected override DataTable setDataTable(DataTable dt)
{
if (dt != null && dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < dt.Columns.Count; j++)
{
dt.Rows[i][j] = (dt.Rows[i][j].ToString() == null ||
dt.Rows[i][j].ToString() == DBNull.Value.ToString())
? ""
: AntiXss.GetSafeHtmlFragment(dt.Rows[i][j].ToString());
}
}
}
return dt;
}
方法(二):protected override DataTable setDataTable(DataTable dt)
{
DataTable cloneDt = new DataTable();
if (dt != null && dt.Rows.Count > 0)
{
foreach (DataColumn column in dt.Columns)
{
cloneDt.Columns.Add(column.ColumnName);
}
foreach (DataRow row in dt.Rows)
{
DataRow cloneRow = cloneDt.NewRow();
foreach (DataColumn column in dt.Columns)
{
cloneRow[column.ColumnName] = (row[column.ColumnName] == null ||
row[column.ColumnName] == DBNull.Value)
? ""
: AntiXss.GetSafeHtmlFragment(row[column.ColumnName].ToString());
}
cloneDt.Rows.Add(cloneRow);
}
}
return cloneDt;
}
结语说明:
以上的写法,以方法(一)的写法上性能会比方法(二) 来的好,就看大家怎么使用了。
处理资讯安全的做法,大多会让人觉得繁琐,但为了系统安全,这是应该做的,因此分享一些比较基础简单的写法,
后续亦会逐步更新相关写法。
以上为的示范,写法、观念上不足之处,请大家见谅,也麻烦大家不吝给予指教。