Foxtable(狐表)用户栏目专家坐堂 → update语句在ft中使用的困惑


  共有3183人关注过本帖树形打印复制链接

主题:update语句在ft中使用的困惑

帅哥哟,离线,有人找我吗?
scott518
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:292 积分:2488 威望:0 精华:0 注册:2011/11/4 17:32:00
update语句在ft中使用的困惑  发帖心情 Post By:2014/5/11 13:38:00 [只看该作者]

Dim dr As DataRow = DataTables("编码表").Find("产品编码 = 'A001'")
If dr IsNot Nothing Then
    Dim a1 As String = dr("品名")
    Dim a2 As String = dr("规格")
    Dim a3 As String = dr("颜色")
    Dim cmd As New SQLCommand
    cmd.ConnectionName = Mydata
    cmd.CommandText = "Updat 表A set 品名 = '" & a1 & "',规格 = '" & a2 & "',颜色 = '" & a3 & "' where 产品编码 = 'A001'"
    cmd.ExecuteNonQuery()
End If

 

上面的代码如果“品名,规格,颜色”三个字段的值都不是null时表A中的执行结果是正确的。但如果三者的值为null的话,update更新后实际数据库表A中三者的值就变成一个空的值,但却不是null,我想要的结果是如果编码表中品名,规格,颜色原来是null,Update到表A中后仍然是null,请问,update语句要怎么写才正确?下面这个写法是不正确的。

Updat 表A set 品名 = isnull('" & a1 & "',null),规格 = isnull('" & a2 & "',null)

 

谢谢!


 回到顶部
帅哥哟,离线,有人找我吗?
kunmails
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:372 积分:3213 威望:0 精华:0 注册:2013/5/6 10:15:00
回复:(scott518)update语句在ft中使用的困惑  发帖心情 Post By:2014/5/11 14:21:00 [只看该作者]

我之前也遇到这个问题 后来在sql中增加自定义函数解决了

如下

CREATE  Function  MY(@var nvarchar(100)) 
Returns nvarchar(100) 
BEGIN 
IF @var IS NULL OR @var = '' 
RETURN NULL 
RETURN @var 
END  

 

在拼接sql语句的时候这样

 

“update 表a  set a = dbo.my('”& a1 & "'),b = dbo.my('" & a2 & "')"


 回到顶部
帅哥哟,离线,有人找我吗?
scott518
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:292 积分:2488 威望:0 精华:0 注册:2011/11/4 17:32:00
  发帖心情 Post By:2014/5/11 14:38:00 [只看该作者]

谢谢,这样是否会影响效率,先试试看。

 回到顶部
帅哥哟,离线,有人找我吗?
scott518
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:292 积分:2488 威望:0 精华:0 注册:2011/11/4 17:32:00
  发帖心情 Post By:2014/5/11 16:22:00 [只看该作者]

此贴怎么乱码了,

谢谢二楼提供的方法,测试过后确实可行,但想请教大家还有没有更直接的方法?


 回到顶部