VC通过ADO连接的SQLServer 怎么向数据库中插入空值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VC通过ADO连接的SQLServer 怎么向数据库中插入空值?相关的知识,希望对你有一定的参考价值。

我在数据库里有一个datetime类型的字段,有时不想给他传入值,但是程序已经绑定该列了,不传值不行,当他应该为空时,我应该在Edit控件或时间控件里输入什么才能给他传进去空值呢?

我的代码是这样的:

CRsContractAndSeal rsCS; //class CRsContractAndSeal : public CADORecordBinding
if(dlg.DoModal() == IDOK)

strcpy(rsCS.m_sz_RegisterDate,dlg.m_Edit1);
strcpy(rsCS.m_sz_UseWhat,dlg.m_Edit2);
strcpy(rsCS.m_sz_DoWhat,dlg.m_Edit3);
strcpy(rsCS.m_sz_UserName,dlg.m_Edit4);

else

return false;


try

pCon.CreateInstance(__uuidof(Connection));
pRs.CreateInstance(__uuidof(Recordset));

if(pCon->GetState()==adStateClosed)
pCon->Open(strSQL,"",strPASS,-1);

pRs->CursorType = adOpenStatic;
pRs->CursorLocation = adUseClient;
pRs->Open((_variant_t)FormBook,_variant_t((IDispatch *)pCon, true),adOpenKeyset,adLockOptimistic,adCmdTable);
rsCS.FillFieldsArray(vaFieldlist, vaValuelist);
pRs->AddNew(vaFieldlist, vaValuelist);

vaFieldlist.Clear();
vaValuelist.Clear();
bResult =true;
pRs->Close();

catch (_com_error& e)

AfxMessageBox("添加失败!请注意日期等数据格式。");
AddData();

if(pCon->GetState() == adStateOpen)
pCon->Close();

我在Edit控件里输入各种null和<NULL>都不行,时间控件里选择任何日期也都不能传进去<NULL>,求高手讲解!!!!!

把控件设置成一个无效的日期就可以了,比如1900-01-01 参考技术A ds adas

vb怎么连接sql?

听说用ADO控件不错,但是不懂怎么用,还有代码要怎么写。
现在假设我VB里有个command1和text1,在sql里有个数据库名ep,表名table1,列名line1,想点击command1的时候text1能显示line1里面的东西。
应该怎么做?比如说ado的控件该怎么设置,然后在哪里哪里加上什么什么代码,需要什么头文件等等,越详细越好,我是菜鸟...
另外,代码越简单越好,我好分析每一句的作用

1、打开代码窗口,添加引用:Imports System.Data.SqlClient。

2、输入以下代码:

“Public conn1  As SqlConnection = New SqlConnection _

("server=192.168.1.79; Initial Catalog= student; User ID= panqe;PWD=shentai768@")”,vb就已经成功连接sql数据库了。

3、代码详解:声明关键字Public(因为是全局变量,所以用Public 来声明)。

4、连接参数。

5、如果SQL 数据库就在本机,则用以下代码连接:

("server=.; Integrated Security=False;Initial Catalog= student; User ID= panqe;PWD=shentai768@")。

6:如果代码太长,影响可读性,可以用空格加"_"后,回车换行。

参考技术A '容易,纯代码,粘到Form1,根据SQL是否采用Windows身份验证模式,代码做相应修改
'将conn.Execute后面的语句
改成自己的存储语句
'新建工程时,运行VB6.0后,必须在工程中引用ADO库,具体做法如下:
'工程--〉引用--〉选择“Microsoft
ActiveX
Data
Objects
2.0(或者2.1-2.8)Library”
Option
Explicit
''VB编译时强制声明变量.如果发现没有声明的变量会提示错误.
Dim
conn
As
New
ADODB.Connection
Dim
rs
As
New
ADODB.Recordset
Dim
str
As
String
Dim
msg
As
String
Private
Sub
Form_Load()
'------------------------------------------------------------------------------------------------------------
OpenCn
"db",
"master"
'修改
第一个参数:本地SQL服务管理器名称"db"
;第二个参数:连接数据库名称"master"
'------------------------------------------------------------------------------------------------------------
openRs
("select
*
from
spt_datatype_info")
'执行查询语句
select
*
from
spt_datatype_info
返回所有列
Do
While
rs.EOF
<>
True
str
=
rs.Fields("ss_dtype")
'返回指定列
ss_dtype
msg
=
msg
+
str
+
"_"
rs.MoveNext
Loop
MsgBox
msg
'显示查询结果
'-------------------------------------------------------------------------------------------------------------
conn.Execute
("INSERT
INTO
spt_server_info
(attribute_id,attribute_name,attribute_value)
VALUES
("
&
Int(Rnd
*
99999999)
&
",'myname','myvalue')")
MsgBox
"成功添加一组数据!"
'-------------------------------------------------------------------------------------------------------------
conn.Execute
("UPDATE
spt_server_info
SET
attribute_name='myname',attribute_value='myvalue'
WHERE
attribute_id=1")
MsgBox
"已修改第一组数据!"
'-------------------------------------------------------------------------------------------------------------
End
Sub
Private
Function
OpenCn(ServerName
As
String,
DatabaseName
As
String)
As
Boolean
'连接数据库
Dim
mag
As
String
On
Error
GoTo
strerrmag
Set
conn
=
New
ADODB.Connection
conn.ConnectionTimeout
=
25
conn.Provider
=
"sqloledb"
conn.Properties("data
source").Value
=
ServerName
'SQL
Server
服务管理器
服务器名称
ServerName
conn.Properties("initial
catalog").Value
=
DatabaseName
'数据库名称
DatabaseName
conn.Properties("integrated
security").Value
=
"SSPI"
conn.Open
'-----------------------------------------------------------
SQL设密码的话,做以下修改
'With
conn
'
.CursorLocation
=
adUseClient
'
.Provider
=
"sqloledb"
'
.Properties("Data
Source").Value
=
SQLServerName
'
.Properties("Initial
Catalog").Value
=
DatabasesName
'
.Properties("User
ID")
=
UserID
'
.Properties("Password")
=
LoadPassword
'
.Properties("prompt")
=
adPromptNever
'
.ConnectionTimeout
=
15
'
.Open
'End
With
'-----------------------------------------------------------
OpenCn
=
True
MsgBox
"数据库连接成功!"
Exit
Function
strerrmag:
mag
=
"Data
can't
connect"
Call
MsgBox(mag,
vbOKOnly,
"Error:Data
connect")
Exit
Function
End
Function
Private
Function
cloCn()
'断开数据库
On
Error
Resume
Next
If
conn.State
<>
adStateClosed
Then
conn.Close
Set
conn
=
Nothing
MsgBox
"已将数据库连接断开!"
End
Function
Private
Function
openRs(ByVal
strsql
As
String)
As
Boolean
'连接数据库记录集
Dim
mag
As
String
On
Error
GoTo
strerrmag
Set
rs
=
New
ADODB.Recordset
With
rs
.ActiveConnection
=
conn
.CursorLocation
=
adUseClient
.CursorType
=
adOpenKeyset
.LockType
=
adLockOptimistic
.Open
strsql
End
With
openRs
=
True
Exit
Function
strerrmag:
mag
=
"data
not
connect"
&
vbCrLf
&
strsql
Call
MsgBox(mag,
vbOKOnly,
"error:connect")
openRs
=
False
End
Function
Private
Function
cloRs()
'断开数据库记录集
On
Error
Resume
Next
If
rs.State
<>
adStateClosed
Then
rs.Clone
Set
rs
=
Nothing
MsgBox
"已将数据库记录集连接断开!"
End
Function
参考技术B 回答

一、配置ODBC数据源1、在控制面板中,双击管理工具,然后打开ODBC数据源管理器。2、在“系统DSN”选项卡中,单击“添加”按钮,打开“创建新数据源”对话框,在“名称”列表框中选择“SQLServer”。选好单击完成3、在打开“建立新的数据源到SQLServer”对话框,在“名称”文本框输入新数据源的名称,描述数据源按你理解的方式来写(随意)。“服务器”就选择你要连接到的服务器。4、选择使用用户输入登录的ID和密码的SQL验证。选连接SQL默认设置5、再下一步下一步,完成。测试数据源看连接是否成功就行了。成功后按确定。

二、VB中设置连接1、添加部件MircrosoftADODataControl6.0(OLEDB),把部件拖到窗体。2、对ADO部件点右键选属性,选择使用连接字符串,按生成。3、选择MircosoftOLEDBProvidarforSQLServer按下一步4、1、输入服务器名称2、使用指定的服务器信息3、在服务器上选择数据库这时就选择你在SQLServer建好的数据库就行了5、测试连接可以看到连接是否成功!

提问

谢谢

回答

不客气的,祝您生活愉快~~

参考技术C 一、配置ODBC数据源
1、在控制面板中,双击管理工具,然后打开ODBC数据源管理器。
2、在“系统DSN”选项卡中,单击“添加”按钮,打开“创建新数据源”对话框,在“名称”列表框中选择“SQL Server”。选好单击完成
3、在打开“建立新的数据源到SQL Server”对话框,在“名称”文本框输入新数据源的名称,描述数据源按理解的方式来写(随意)。“服务器”就选择要连接到的服务器。
4、选择使用用户输入登录的ID和密码的SQL 验证
。选连接SQL默认设置
5、再下一步下一步,完成。测试数据源看连接是否成功就行了。成功后按确定。
二、VB中设置连接
1、添加部件Mircrosoft ADO Data Control 6.0(OLEDB),把部件拖到窗体。
2、对ADO部件点右键选属性,选择使用连接字符串,按生成。
3、选择Mircosoft OLE DB Providar for SQL Server
按下一步
1、输入服务器名称
2、使用指定的服务器信息
3、在服务器上选择数据库
这时就选择在SQL Server建好的数据库就行了
5、测试连接可以看到连接是否成功。
参考技术D 在窗体上添加adodc控件
鼠标右键-adodc属性-在通用选项卡里,点生成,选for SQL Server驱动程序-下一步-连接选项卡里
1.输入服务器名称,2.使用Windows NT 集成安全设置。3.选择一个数据库
点测试连接,看看是否成功。按确定

点记录源选项卡,命令类型选8,命令文本(SQL)写:select * from table1
确定,就连接到SQL数据库的表table1了。

Private Sub Command1_Click()
If Not Adodc1.Recordset.EOF Then
Text1.Text = Adodc1.Recordset.Fields("line1")
End If
End Sub

以上是关于VC通过ADO连接的SQLServer 怎么向数据库中插入空值?的主要内容,如果未能解决你的问题,请参考以下文章

VC_ADO连接SQLSERVER时连接字符串的模式

vc++连接MYSQL数据库

VC++用ADO连接SQL Server出错,异常:“Unknown error 0x800A0E7D".提示:“数据库连接失败”.

请问下VB的ADO Data控件跟SQL数据库文件mdf怎样连接呢?

基于ADO的远程Oracle连接

delphi中ado连接sqlserver