今天在發(fā)布文章的時候,發(fā)現(xiàn)自己的網(wǎng)站對文章竟然發(fā)布失敗,后來一個個排除,原因是對單引號的沒有轉(zhuǎn)譯,在插入access的時候錯誤。
在文本中存在單引號是很正常的事情,所以只能修復這個問題,方法其實很簡單,因為access中可以使用兩個單引號來轉(zhuǎn)譯,所以只要把文本中的單引號替換為雙引號就可以了。
代碼:
string strContent = this.FCKeditor1.Value; strContent = strContent.Trim().Replace("'", "''");
修改后,插入成功。
a1 = Replace(a1, "'", "''")
首先你要明白你sql語句結(jié)構(gòu):如例子。INSERT INTO DataTable(DataTime,DataValue) values('2013-04-08','aaaa').你的sql語句是這樣才能正確執(zhí)行,那這樣你就明白了,你的字符串拼接中的單引的意思了吧。雙引就是表示你兩個雙引間是字符串。你這里是多個字符串拼接。
可以用string.Format
SQL =string.Format("INSERT INTO DataTable(DataTime,DataValue) VALUES('{0}','{1}'",dataTime[i],dataValue[i]);,這樣看著明了DateTime dateTime = new DateTime();
dateTime = DateTime.Now;//不可以直接帶入dateTime 要加上+號
string strSQL = "INSERT INTO Developer(Name, Address,DOB) VALUES('www101','HUDAN','" + dateTime + "')";
加號是兩個字符串拼接的用處
"a"+"b"結(jié)果得到"ab"
雙引號的作用是作為字符串 字符串常量都要用雙引號括起來
另外就是插入數(shù)據(jù)庫是要在值的左右加上單引號'以上符號都要是英文模式
Access中字符常量的定界符可以是單引號,也可以是雙引號。
在其VBA中,如下例,“北京”兩個字要用引號引起來,可以用單引號
strsql = "select * from 學生 where 籍貫='北京'"
也可以用兩個連續(xù)雙引號表示一個雙引號
strsql = "select * from 學生 where 籍貫=""北京"""
但不能用strsql = 'select * from 學生 where 籍貫="北京"'
在Access 2003中通配符%用*替代,例如查詢姓“李”的學生信息
SELECT * FROM 學生 WHERE 姓名 like "李*";
&是字符串連接運算符,例如"abc" & "def"得到字符串"abcdef"
AND是邏輯運算符,當兩個操作數(shù)同時為真時,其結(jié)果AND的結(jié)果為真
例如:年齡>20 And 性別='女'
Select * from gz where 職稱="工程師"
這個語句有問題,肯定在調(diào)試時出現(xiàn)錯誤,原因很簡單,完全的SQL語句如下:
strSQL="Select * from gz where 職稱="工程師""
你應該知道,"Select * from gz where 職稱="這是一個字符串,字符串到“=”這里結(jié)束了,后面是“工程師”,是什么?變量?不對!字符串?不對!這里就會出現(xiàn)問題,而最后的“""”是一個空字符串。正確的語句應該是:
strSQL="Select * from gz where 職稱='工程師'"
雙引號到“'工程師'”后才結(jié)束,也就是這是應該完整的字符串。
在SQL語句中,單引號和雙引號的應用是有區(qū)別的。
例如:
strSQL="Select * from gz where 職稱='" & 工程師 & "'"
那么,“工程師”是字符型變量,注意:有單引號!
再如:
strSQL="Select * from gz where ID=" & PID & ""
說明,字段ID是數(shù)字類型字段,變量PID是數(shù)字類型變量,注意:沒有了單引號!
再如:
strSQL="Select * from gz where 職稱 Like '%" & ABC & "%'"
是通配符%的典型應用,一般這種查詢都是字符型字段。
如對本文有疑問,請?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會為你解答??! 點擊進入論壇