我有一個表t1,內有no,address和tel等字段
t1="001" char(10)
taddress="abdgdgsdgdgsddsg'ghhhhh'gsghdhs" varchar(100)
ttel="23456789" char(18)
地址address中有兩個單引號,网上有許多講用雙引號替換單引號,現在我不想替換,我想如實存入資料,現在我要把通過vb編程把這些值插入sql server中,程序如下
rs!addnew
rs!no=t1
rs!address=taddress
rs!tel=ttel
rs.update存入以後,新的問題又來了用sql查詢器出現這樣的結果,百思不得其解
 no       address                 tel
 001      bdgdgsdgdgsddsg'gh
          hhhh'gsghdhs          23456789
這不是我想要的結果,我想要的結果是
no       address                           tel
001      bdgdgsdgdgsddsg'ghhhhh'gsghdhs   23456789
問題出在哪裡呢

解决方案 »

  1.   

    呵呵!因为单引号,双引号,逗号都是sql中的特殊字符,当然会出问题了,对特殊字符进行转义试试看,像下面的:taddress="abdgdgsdgdgsddsg\'ghhhhh\'gsghdhs" varchar(100)我不知道在sql server是不是这样转义,只是一个思路,不一定会成功,因为我很少使用sql server,对它不是很了解。这样的问题你可以有时间查一查,sql server是如何处理特殊字符的。
      

  2.   

    答非所問,我說的雖然单引号是sql中的特殊字符,但是我可以用rs!addnew存進去,只是查不清為何會換行
      

  3.   

    問題是我想存入單引號進去,用insert into是不行的,只有用addnew,但是新問題又來了,數據換行了,它是怎么換行的呢?百思不得其解
      

  4.   

    Public Const Constr = "Provider=SQLOLEDB.1;Password=massunsoft009;Persist Security Info=True;User ID=sa;Initial Catalog=zlssf;Data Source=SERVER1"’模块中的Dim conn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Private Sub Command1_Click()
    If conn.State = adStateOpen Then conn.Close
    conn.Open Constr
    rs.CursorLocation = adUseClient
    rs.Open "select * from wsd", conn, adOpenKeyset, adLockOptimistic, 1
    Dim t1, taddress, ttel As String
     t1 = "001" & "Char(10)"
     taddress = "abdgdgsdgdgsddsg'ghhhhh'gsghdhs" & "VarChar(100)"
    ttel = "23456789" & "Char(18)"
    rs.AddNew
    rs!no = t1‘这一句怎么出现错误?
    rs.Fields("address") = taddress
    rs.Fields("tel") = ttel
    rs.Update
    rs.Close
    End Sub
      

  5.   

    不好意思,沒有說清楚,你們誤會了我的意思,我的
    t1="001" 'char(10)(代表字段類型為字符型,寬度為10,這是一個注釋語句),余下的也是一樣
    taddress="abdgdgsdgdgsddsg'ghhhhh'gsghdhs" 'varchar(100)
    ttel="23456789" 'char(18)