的FlexGrid
在保存flexgrid空单元格值时,它在表
中保存为0例如
的Flexgrid
ID Value1 Value2
001 1
002
....
保存...
查询
With flexgrid
insert into table1 values (NULLIF('" & .TextMatrix(i, 0) & "', '0'), NULLIF('" & .TextMatrix(i, 1) & "', '0'), NULLIF('" & .TextMatrix(i, 2) & "', '0'))
End with
表1
ID Value1 Value2
001 1 0
002 0 0
它不应该允许在表中保存'0'值,它应该保存为空列。
预期产出
ID Value1 Value2
001 1
002
如何解决问题。
需要帮助
答案 0 :(得分:3)
假设您的列是int,那么您将发送一个空字符串implicitly converted to zero when stored。所以你的NULLIF需要测试空字符串。在NULLIF处理完毕后发生零。
另外:不要连接字符串以构建SQL语句。参数化以避免SQL注入
答案 1 :(得分:1)
这可能在服务器端更好地处理,例如
CREATE PROCEDURE AddThing
@ID INTEGER,
@Value1 INTEGER = NULL,
@Value2 INTEGER = NULL
AS
INSERT INTO table1 VALUES (@ID, NULLIF(@Value1, 0), NULLIF(@Value2, 0));
然后使用具有强类型Parameter对象的Command对象
从VB调用proc