我在C#中使用OLEDB paramaterized串/網絡,不喜歡OLEDB的方式做參數用問號:通過解析爲OLEDB
using (OleDbConnection sqlConnect = drtevs.GetConnection())
{
OleDbCommand command.CommandText = "UPDATE NAME SET FIRST_NAME = ?, LAST_NAME = ? WHERE ID = ?;";
command.Parameters.Add(new OleDbParameter("@FIRST_NAME", txtFirst));
command.Parameters.Add(new OleDbParameter("@LAST_NAME", txtLast));
command.Parameters.Add(new OleDbParameter("@ID", 12));
command.ExecuteNonQuery();
}
我看到的是他們沒有被命名的問題,因此不能重用它們。有沒有更好的方法來用OleDB做參數?如果有人可以給我的代碼來執行類似LINQ-TO-SQL代碼方式如下:
db.ExecuteQuery("UPDATE NAME SET FIRST_NAME = {0}, LAST_NAME = {1} WHERE ID = {2}", txtFirst, txtLast, 12);
我知道本地SQL .NET提供了命名參數(前@FIRST_NAME,@LAST_NAME),但由於我與SQL工作服務器和Oracle不是一個選項。
編輯: 我想避免SQL注入和清理我的參數,也能夠插入不可序列化的對象,如字節數組。
所有答案給出到目前爲止如果我的姓氏都將失敗「」 DROP TABLE名稱 - 」,另外它會造成損害到我的分貝
是不是重複使用了一個具體問題?另外,如果提供的SQL格式爲「... ... {1} ...和{0} ...」,則會發生什麼情況。排序不正確。 –
你是對的@Lasse,昨晚我得出了同樣的結論。所以今天早上我編輯了Joel的代碼,但我相信這會起作用。我仍然相信自從他讓我開始之後他就獲得了信譽 –