我正在寻找一种更简单的方法来检查一个值是否为dbNull并将其转换为空字符串(如果是这样).
我需要这种情况的一个例子是:
Dim dt As New DataTable
Dim conn As New OleDbConnection(someConnStr)
Dim adap As New OleDbDataAdapter(qryCSSInfo, cssConn)
adap.Fill(dt)
Dim someStr As String = "The first column of the first row returned: " & dt.rows(0).item(0)
Msgbox(someStr)
Run Code Online (Sandbox Code Playgroud)
问题是如果dt.rows(0).item(0)在数据库中为空,它将作为dbNull值返回,这显然不会附加到字符串.
我对这个问题的解决方案是使用if语句用空字符串替换值:
Dim dt As New DataTable
Dim conn As New OleDbConnection(someConnStr)
Dim adap As New OleDbDataAdapter(qryCSSInfo, cssConn)
adap.Fill(dt)
If Not isDBNull(dt.rows(0).item(0)) then
Dim someStr As String = "The first column of the first row returned: " & dt.rows(0).item(0)
Else
Dim someStr As String …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个函数,它将使进程在接收循环中等待并在输入上进行模式匹配以创建更多进程.
-module(masterNode).
%% ====================================================================
%% API functions
%% ====================================================================
-export([listen/0]).
%% ====================================================================
%% Internal functions
%% ====================================================================
listen() ->
receive
{userNodeName, createNode} ->
spawn(userNode, listen, [userNodeName]),
io:format("User Node Created!~n"),
listen();
{_, createNode} ->
spawn(userNode, listen, ["Anonymous"]),
io:format("Anonymous User Node Created!~n"),
listen();
_ ->
io:format("Invalid syntax!.~n")
end.
Run Code Online (Sandbox Code Playgroud)
当我尝试从命令行将masterNode生成到变量时,我收到此错误:
5> mn = spawn(masterNode, listen, []).
** exception error: no match of right hand side value <0.44.0>
Run Code Online (Sandbox Code Playgroud)
但是,如果我不尝试将其存储到变量中,我没有问题:
6> spawn(masterNode, listen, []).
<0.47.0>
Run Code Online (Sandbox Code Playgroud)
我要做的是使用此masterNode变量运行listen命令以激活模式匹配并通过另一个模块(userNode)创建更多进程.像这样:
mn ! {userNode1, createNode}. %Create a userNode process called …Run Code Online (Sandbox Code Playgroud)