字串加入''單引號:**分析器遇到乙個單引號,就認為字串文字開始,然後遇到下乙個單引號的時候,它不會立即認為字串結束,而是再讀取下乙個字元,如果還是單引號,則把這兩個單引號解釋為字串中的乙個單引號,並且繼續分析後面的字元,直到遇到乙個單引號後不是單引號,就認為這個字串結束。
例一:string.format("delete from [escale_std] where identifier= "+"'datagridview1.rows[1].cells[0].value.tostring().trim()'")
返回的結果
delete from [escale_std] where identifier= 'datagridview1.rows[1].cells[0].value.tostring().trim()' //沒有變換數值,失敗
例二:string.format("delete from [escale_std] where identifier= "+datagridview1.rows[1].cells[0].value.tostring().trim())
返回的結果
delete from [escale_std] where identifier= f0779 //f0779無單引號,失敗
例三:string.format("delete from [escale_std] where identifier= "+"'"+datagridview1.rows[1].cells[0].value.tostring().trim()+"'")
返回的結果
delete from [escale_std] where identifier= 'f0779' //有單引號,符合預期,其中+"'" 是為了增加前後單引號'
例四:string.format("delete from [escale_std] where identifier= '"+datagridview1.rows[1].cells[0].value.tostring().trim()+"'")
返回的結果
delete from [escale_std] where identifier= 'f0779' //有單引號,符合預期
例五:string.format("delete from [escale_std] where identifier= ''",datagridview1.rows[1].cells[0].value.tostring().trim())
返回的結果
delete from [escale_std] where identifier= 'f0779' //符合預期,有更好的可讀性
c 中的 單引號和雙引號
單引號是字元型,雙引號是字串型 單引號引起的乙個字元實際上代表乙個整數。雙引號引起的字串,代表的卻是乙個指向無名陣列起始字元的指標。該陣列會被雙引號之間的字元以及乙個額外的二進位制為零的字元 0 初始化。舉個例子 a 和 a 的區別,前者是字串,後者是字元。實際上 a 是 a 0 以 0 結尾。而 ...
mysql中反單引號 單引號 雙引號的區別
反引號,一般在esc鍵的下方。它是為了區分mysql的保留字與普通字元而引入的符號。舉個例子 select select from test where select 字段值 在test表中,有個select欄位,如果不用反引號,mysql將把select視為保留字而導致出錯,所以,有mysql保留...
shell中的引號,單引號,反引號
引號 在shell中引號分為三種 單引號,雙引號和反引號。單引號 由單引號括起來的字元都作為普通字元出現。特殊字元用單引號括起來以後,也會失去原有意義,而只作為普通字元解釋。例如 string path echo string path 可見 保持了其本身的含義,作為普通字元出現。雙引號 由雙引號括...