insert null ?

appleller 2010-04-09 12:20:15

录入textbox保存数据时,拼写SQL语句
insert into tablea (.....) values ('','',..)

而如果某textbox无值,想insert null 怎么处理,怎么还是用以上语句实现呢?关键有个'',不知道怎么处理?
...全文
344 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Snowdust 2010-04-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 appleller 的回复:]
引用 1 楼 snowdust 的回复:
建议:
1.采用传递参数的形式,传的时候用DBNull.Value
下面这个是C#的,VB.NET基本上差不多:http://www.haoxiai.net/wangzhanzhizuo/aspnet/29263.html
2.直接在SQL语句中写是使用NULL
比如:insert into tablea (.....) values ('',N……
[/Quote]
这就要判断了啊,比如:
Dim sql As String;
If (this.textBox1.Text == string.Empty) Then
sql = "insert into tablea (.....) values ('',NULL,..)"
Else
sql = "insert into tablea (.....) values (''," + this.textBox1.Text + ",..)"
End If
appleller 2010-04-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 snowdust 的回复:]
建议:
1.采用传递参数的形式,传的时候用DBNull.Value
下面这个是C#的,VB.NET基本上差不多:http://www.haoxiai.net/wangzhanzhizuo/aspnet/29263.html
2.直接在SQL语句中写是使用NULL
比如:insert into tablea (.....) values ('',NULL,..)
[/Quote]

如果用第二种方式,怎么对于有值和无值的两种情况,用同一个insert语句呢?
coregao0220 2010-04-09
  • 打赏
  • 举报
回复
就按现在的方法插入,添加一次更新的步骤。
update 表
set 字段 = null
where 字段 = ''
Snowdust 2010-04-09
  • 打赏
  • 举报
回复
建议:
1.采用传递参数的形式,传的时候用DBNull.Value
下面这个是C#的,VB.NET基本上差不多:http://www.haoxiai.net/wangzhanzhizuo/aspnet/29263.html
2.直接在SQL语句中写是使用NULL
比如:insert into tablea (.....) values ('',NULL,..)
波导终结者 2010-04-09
  • 打赏
  • 举报
回复
写成存储过程,在存储过程里面处理
古今多少事 2010-04-09
  • 打赏
  • 举报
回复
记得LZ问过类似的问题。我的解决方法是根据Textbox是否为空,分别执行不同的INSERT语句,如为空,则该字段不赋值,只更新其他字段。
__老张__ 2010-04-09
  • 打赏
  • 举报
回复
你外面可以是日期字段,数据库可以弄成varchar的
zhang286104091 2010-04-09
  • 打赏
  • 举报
回复
如果都按照你说的,你就一个一个的判断吧,判断一个写意条SQL语句。
zhang286104091 2010-04-09
  • 打赏
  • 举报
回复
要求这么高,为什么不用字符串来存,在存的时候判断日期格式?并且实际需求有这样的?
appleller 2010-04-09
  • 打赏
  • 举报
回复
如果是日期字段就不好把NULL改为''了,那样就变成1900-01-01了。
zhang286104091 2010-04-09
  • 打赏
  • 举报
回复
建议写个字符串拼写,你的需求也太。。。。我们一般都把NULL改为''。。。
dim str1 as string="" 'insert字符串
dim str2 as string="" 'values字符串
str1="insert("
str2="values("
if textbox1.text.tostring.trim<>"" then
str1=str1+colum1+","
str2=str2+'"& textbox1.text.tostring.trim &"'+","
......
遇到这样的需求我只有这样写了,要么在数据库的存储过程中去判断,一样的道理
appleller 2010-04-09
  • 打赏
  • 举报
回复
还是要用两条不同的语句来区分啊,如果多个字段都考虑这种情况,就太麻烦了。
ouzui 2010-04-09
  • 打赏
  • 举报
回复
可以用IIf来处理

16,718

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧