VB INSERT语句问题

RX178 2010-07-06 11:34:11
现在有一个关于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这个方法也是不行,请大家赐教
...全文
242 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnuser1 2010-08-18
  • 打赏
  • 举报
回复
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
of123 2010-08-18
  • 打赏
  • 举报
回复

如果已经用 ADODC 连接了数据库,则不需要额外的连接对象:

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

ado1.Requery
clear_zero 2010-08-18
  • 打赏
  • 举报
回复
用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)
chinaboyzyq 2010-08-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 rx178 的回复:]

现在可以使用了,但是出现了对象关闭时无法进行操作,如何解答?
[/Quote]
用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
wsnameno 2010-08-17
  • 打赏
  • 举报
回复
VB中查询语句是常量不能用'';
"对象关闭时无法进行操作",去掉" cnn.Close"这一行试一下
贝隆 2010-07-07
  • 打赏
  • 举报
回复
饮水需思源 2010-07-07
  • 打赏
  • 举报
回复
ado1没有与数据库建立连接,把ado1.refresh这句注释了吧,cn.execut sql这句已经把记录保存到数据库中了
RX178 2010-07-06
  • 打赏
  • 举报
回复
现在可以使用了,但是出现了对象关闭时无法进行操作,如何解答?

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧