现在有一个关于VB中用SQL insert语句问题,请大家帮个忙
语句我简化了如下
strcn = "Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=base;Data Source=space"
        cnn.ConnectionString = strcn
        cnn.Open
        sql = "insert into maindisplay (telnum,work) values ('3333','23-1')"      '就是这句
        cnn.Execute (sql)
        ado1.Refresh
        cnn.Close这句我是强制输入数据。在企业管理器中可以成功输入,在VB中输入失败。我用ado1.RecordSource这个方法也是不行,请大家赐教

解决方案 »

  1.   

    ado1没有与数据库建立连接,把ado1.refresh这句注释了吧,cn.execut sql这句已经把记录保存到数据库中了
      

  2.   

    http://download.csdn.net/source/1498324
      

  3.   

    VB中查询语句是常量不能用'';
    "对象关闭时无法进行操作",去掉" cnn.Close"这一行试一下
      

  4.   

    用ADODB:
    要在工程--引用 Microsoft ActiveX Data Objects 2.5 Library,并定义cnn
    Dim cnn As New ADODB.Connection
    sql = "insert into maindisplay (telnum,work) values ('3333','23-1')" '就是这句
    cnn.Execute (sql)用ADODC:要添加ADODC1
    1)错误的做法:
    sql = "insert into maindisplay (telnum,work) values ('3333','23-1')" '就是这句
    ado1.RecordSource = sql '会出现对象关闭时无法... 
    ado1.Refresh 
    2)正确的做法:
    sql = "insert into maindisplay (telnum,work) values ('3333','23-1')" '就是这句
    Adodc1.Recordset.ActiveConnection.Execute = sql 
    ado1.Refresh 
      

  5.   

    用ADODB:
    要在工程--引用 Microsoft ActiveX Data Objects 2.5 Library,并定义cnn
    Dim cnn As New ADODB.Connection
    sql = "insert into maindisplay (telnum,work) values ('3333','23-1')" '就是这句
    cnn.Execute (sql)
      

  6.   


    如果已经用 ADODC 连接了数据库,则不需要额外的连接对象:ado1.Recordset.ActiveConnection.Execute "insert into maindisplay(telnum,work) values('3333','23-1')"ado1.Requery
      

  7.   

    Public Function PopenDBConnection()
    On Error GoTo errOpenBDConnection:
                sSQL = "Provider=OraOLEDB.Oracle.1;Persist Security Info=True;User ID=" + Trim(PUserName) + ";Password=" + Trim(PUserPassword) + ";Data Source=" + Trim(PUserDbName)
                
                ConnString = sSQL 'Save the Public connection string.
                Conn.Open sSQL
                'MsgBox ("Database connection successful!"), vbInformation, "EnterpriseIQ System"
                frmLoginByUsers.Show
                Exit Function
    errOpenBDConnection:
            MsgBox ("Database connection failed!" & vbCrLf & Err.Number & Err.Number & vbCrLf & Err.Description), vbCritical, " EnterpriseIQ System"
            Exit Function
    End FunctionPublic Function NewChangeSave()
        Dim SaveSql As String
        Dim SaveCommand As New command
        
    On Error GoTo eNext:    SaveSql = "insert into iqms.ia_002_tabmodulespowerchange" + _
            "(id, serialnumber, b_pamx, a_pamx,c_user,c_date,c_reason) Values" + _
            "(S_IA_002_TABMODULESPOWERCHANGE.NEXTVAL,'" + Trim(strModulesSn) + "'," + Trim(douBPamxValue) + "," + Trim(txtChangedPower) + "," + _
            "'" + Trim(txtChangeUser) + "',TO_DATE('" + Format(txtChangeDate, "yyyy-mm-dd hh:mm:ss") + "', 'YYYY-MM-DD HH24:MI:SS'),'" + _
            Trim(txtChangeReason) + "')"
                    
            SaveCommand.ActiveConnection = Conn
            SaveCommand.CommandType = adCmdText
            SaveCommand.CommandText = SaveSql
            SaveCommand.Execute
            
            Exit Function
    eNext:
            MsgBox Err.Description, vbCritical, Err.Number
            
    End Function