当前位置:编程学习 > VB >>

VB INSERT语句问题

现在有一个关于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这个方法也是不行,请大家赐教 --------------------编程问答-------------------- 现在可以使用了,但是出现了对象关闭时无法进行操作,如何解答? --------------------编程问答-------------------- ado1没有与数据库建立连接,把ado1.refresh这句注释了吧,cn.execut sql这句已经把记录保存到数据库中了 --------------------编程问答-------------------- http://download.csdn.net/source/1498324 --------------------编程问答-------------------- VB中查询语句是常量不能用'';
"对象关闭时无法进行操作",去掉" cnn.Close"这一行试一下 --------------------编程问答--------------------
引用 1 楼 rx178 的回复:
现在可以使用了,但是出现了对象关闭时无法进行操作,如何解答?

用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  --------------------编程问答-------------------- 用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 连接了数据库,则不需要额外的连接对象:

ado1.Recordset.ActiveConnection.Execute "insert into maindisplay(telnum,work) values('3333','23-1')"

ado1.Requery --------------------编程问答-------------------- 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 Function

Public 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
补充:VB ,  数据库(包含打印,安装,报表)
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,