sql - 在 VB6 中从 ComboBox 保存数据的问题
问题描述
我有,ComboBox
但问题是当我尝试保存选择的值时,因为我加载了ComboBox
值SQLServer
并且应用程序向我显示了下一个错误:
[Microsoft][ODBC SQL Server Driver][SQL Server]列名“cellular”无效。
我加载的ComboBox
值为SQL
:
Private Sub Form_Load()
Set rs = New Recordset
rs.CursorLocation = adUseServer
Call IniciarConexion
CargaIDTipoNumero
End Sub
Private Sub CargaIDTipoNumero()
cmbAddExample(indice).Clear
rs.Open "SELECT tipo FROM tipo_Numero", cnn, adOpenDynamic, adLockOptimistic
Do While rs.EOF = False
cmbAddExample(indice).AddItem rs!tipo
rs.MoveNext
Loop
rs.Close
End Sub
Private Sub IniciarConexion()
Set cnn = New ADODB.Connection
With cnn
.CursorLocation = adUseClient
.Open "PROVIDER=MSDASQL;driver={SQL Server};server=server;uid=uid;pwd=pwd;database=database;"
End With
End Sub
保存以下值的表ComboBox
:
CREATE TABLE ejTres(
combo int
)
我加载的表ComboBox
:
CREATE TABLE tipo_Numero(
idTipo INT IDENTITY (1,1) NOT NULL,
tipo VARCHAR (10) NOT NULL,
CONSTRAINT pk_tipo PRIMARY KEY(idTipo)
)
INSERT INTO tipo_Numero(tipo)
VALUES('celular'), ('fijo')
以及Button
我保存值的位置:
Private Sub btnGuardar_Click()
Dim i As Integer
Dim CM As ADODB.Command
Set CM = New ADODB.Command
Set CM.ActiveConnection = cnn
CM.CommandType = adCmdText
CM.CommandText = "INSERT INTO ejTres (combo) VALUES (?)"
CM.Parameters.Append CM.CreateParameter("@combo", adInteger, , , cmbAddExample(i))
CM.Execute , , adExecuteNoRecords
End Sub
解决方案
只关注如何将 Identity 值放入表中的问题,请尝试以下操作:
''as you load the combo, also save the identity value
Do While rs.EOF = False
cmbAddExample(indice).AddItem rs!tipo
cmbAddExample(indice).ItemData(cmbAddExample(indice).NewIndex) = rs!idTipo
rs.MoveNext
Loop
''now retrieve the identity value when creating the parameter
id = cmbAddExample(i).ItemData(cmbAddExample(i).ListIndex)
Set CM = New ADODB.Command
Set CM.ActiveConnection = cnn
CM.CommandType = adCmdText
CM.CommandText = "INSERT INTO ejTres (combo) VALUES (?)"
CM.Parameters.Append CM.CreateParameter("@combo", adInteger, , , id)
CM.Execute , , adExecuteNoRecords
推荐阅读
- swift - TabBar 控制器(Swift)中跨项目的多种徽章颜色
- passport.js - PassportJS、NestJS:AuthGuard('jwt') 的 canActivate 方法
- mysql - MySQL 列值自动增量在特定范围内唯一
- javascript - 如何使用树旋转防止 n 叉树的深分支?
- html - 修复导航栏出现在内容前面
- windows - 如何批量生成txt文件
- python - 尝试(但失败)将 2 个列表与蛋白质片段序列进行比较
- azure - 具有 Azure 操作的 DBA/BI 工作流
- laravel - 如果只剩下 1 条记录,Laravel 将无法删除
- python - 为基于 Python 的编码设置用户速率限制(对于最终用户和我自己)(使用 AWS Cognito?)的简单方法是什么