日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁(yè) > php開(kāi)源 > 綜合技術(shù) > Access sql語(yǔ)句構(gòu)建(規(guī)避單引號(hào))

Access sql語(yǔ)句構(gòu)建(規(guī)避單引號(hào))

來(lái)源:程序員人生   發(fā)布時(shí)間:2014-05-24 02:49:49 閱讀次數(shù):2538次

簡(jiǎn)單的一個(gè)執(zhí)行Update的語(yǔ)句,條件確定,當(dāng)然這樣很傻,尚待提高,代碼如下:

public bool ExeHashTableSqlstr(Hashtable ht, string TableName, string where)
{
List<OleDbParameter> ParList = new List<OleDbParameter>();
foreach (DictionaryEntry item in ht)//key 是字段名 value是當(dāng)前值,對(duì)應(yīng)屬性里有各自的數(shù)據(jù)類(lèi)型
{
ParList.Add(new OleDbParameter("@" + item.Key.ToString(), item.Value));
}
#region 構(gòu)建sqlStr
string contents = " ";
Int16 count = 0;
foreach (OleDbParameter item in ParList)
{
contents += item.ParameterName.Substring(1);
contents += "=";
contents += item.ParameterName;
count++;
if (count != ht.Count)
{
contents += ", ";
}
}
string sqlString = "UPDATE " + TableName + " SET " + contents;
if (where != "")
{
sqlString += " where " + where + ";";
}
else
{
sqlString += ";";
}
#endregion
Open();
OleDbCommand cmd = new OleDbCommand(sqlString, mConn);
foreach (OleDbParameter par in ParList)
{
cmd.Parameters.Add(par);
}
if (cmd.ExecuteNonQuery() >= 1)
{
Close();
return true;
}
else
{
Close();
return false;
}
}

這里有兩個(gè)有意思的地方,

用OleDbParameter和OleDbCommand 兩個(gè)對(duì)象來(lái)調(diào)用sql語(yǔ)句,不需要對(duì)任何字符串的sql語(yǔ)句預(yù)處理,如包含單引號(hào),換行符等。

參考以下:OleDbParameter參數(shù)的使用

運(yùn)用參數(shù)可防止一些sql攻擊

public bool judIDPW(string CustomerName, string CustomerPassword)
{
OleDbParameter par1 = new OleDbParameter();
par1.ParameterName = "@CustomerName";
par1.Value = CustomerName;
OleDbParameter par2 = new OleDbParameter();
par2.ParameterName = "@CustomerPassword";
par2.Value =Security.Encrypt(CustomerPassword);

OleDbCommand cmd = new OleDbCommand("select CustomerID from Customers where CustomerName=@Customer and CustomerPassword=@CustomerPassword", con);
cmd.Parameters.Add(par1);
cmd.Parameters.Add(par2);
con.Open();
OleDbDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
con.Close();
return true;
}
else
{
con.Close();
return false;
}
}

使用用OleDbParameter(String, Object)的技巧:

List<OleDbParameter> ParList = new List<OleDbParameter>();
foreach (DictionaryEntry item in ht)//key 是字段名 value是當(dāng)前值,對(duì)應(yīng)屬性里有各自的數(shù)據(jù)類(lèi)型
{
ParList.Add(new OleDbParameter("@" + item.Key.ToString(), item.Value));
}

public bool ExeHashTableSqlstr(Hashtable ht, string TableName, string where)
{
List<OleDbParameter> ParList = new List<OleDbParameter>();
foreach (DictionaryEntry item in ht)//key 是字段名 value是當(dāng)前值,對(duì)應(yīng)屬性里有各自的數(shù)據(jù)類(lèi)型
{
ParList.Add(new OleDbParameter("@" + item.Key.ToString(), item.Value));
}
#region 構(gòu)建sqlStr
string contents = " ";
Int16 count = 0;
foreach (OleDbParameter item in ParList)
{
contents += item.ParameterName.Substring(1);
contents += "=";
contents += item.ParameterName;
count++;
if (count != ht.Count)
{
contents += ", ";
}
}
string sqlString = "UPDATE " + TableName + " SET " + contents;
if (where != "")
{
sqlString += " where " + where + ";";
}
else
{
sqlString += ";";
}
#endregion
Open();
OleDbCommand cmd = new OleDbCommand(sqlString, mConn);
foreach (OleDbParameter par in ParList)
{
cmd.Parameters.Add(par);
}
if (cmd.ExecuteNonQuery() >= 1)
{
Close();
return true;
}
else
{
Close();
return false;
}
}

生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 国产综合婷婷 | 国产午夜视频在线观看 | 日韩福利视频 | 一区二区三区免费 | 国产激情视频 | 毛片网站在线观看 | 精品美女久久久久久免费 | 九一在线 | 午夜精品一区二区三区视频免费看 | 国产视频91在线 | 精品色综合 | 国产精品乱码一区二区三区 | 成人深夜福利 | 色偷偷网站视频 | 在线观看国产视频 | 一区二区三区四区在线 | 亚洲一级免费观看 | 一本亚洲 | 91在线精品一区二区三区 | 久久久久国产精品一区二区 | 亚洲日韩中文字幕 | 国产在线一级 | 成人午夜在线 | 久久91精品国产一区二区三区 | 91嫩草影视 | 中文字幕国产一区二区三区 | 久久精品久久久久 | 东北寡妇特级毛片免费 | 国产精品九九九 | 国产一区精品 | 成人影片免费 | 91久久精品国产91久久 | 一级久久久 | 国产精品久久久久久久久久久久 | 色噜噜精品 | 另类激情亚洲 | 久久大 | 99国产精品视频免费观看一公开 | 欧洲精品久久久 | 视频在线一区二区 | 在线视频精品一区 |