空值你就别插入那个字段嘛 string myinsert = string.Format(@"insert into person(姓名,手机,性别)values('{0}','{1}','{2}')", sname, sphone, ssex);
解决方案 »
- 隐藏域赋值和取值
- 有点难,想要在两个控件(ListBox)之间画线!
- 刚学c#,问题就来了,C#控制台程序和WINFORM程序还有WEB程序,语法都不同啊,那启不是要学3种语言一样啊?
- 访问页面时判断是否是登陆用户,关于session的问题
- 主窗体隐藏后显示的附窗体 怎么将副窗体的值传到主窗体
- 请问如何在windows server 2008上安装服务程序
- 关于命令行方式下的,应用程序执行信息截获的问题
- 关于c# html+WebSocket的问题
- hashtable 嵌套hashtable 赋值
- 高分求教!!!!!!!!!!!!!!!!
- FolderBrowserDialog 选取文件并返回文件路径时报错
- c#中怎样生成随机的1~30之间的数据?
接着就是程序代码中稍微处理一下即可。
string time = dateTimePicker1.Value.ToLongDateString();
DateTime? dt = string.IsNullOrEmpty(time) ? null : (DateTime?)DateTime.Parse(time);
DateTime? dt = string.IsNullOrEmpty(time) ? null : (DateTime?)DateTime.Parse(time);
string myinsert = string.Format(@"insert into person(姓名,手机,性别,生日)values('{0}','{1}','{2}','{3}')", sname, sphone, ssex,dt);
time = "null"
我直接把NULL赋值给time,测试一下。程序还是报错:未处理OleDbException——"标准表达式中数据类型不匹配。"
这个时间列是允许为空的,但好像null不能直接插进去
别插这个字段不就行了?非得插入它一下?时间我还是建议给个默认值比如:1900-01-01别给日期类型的给个NULL为好
好像NULL不能直接插入时间类型的列中。
不插入可以。做这个程序用单个时间控件可以。但如果有几个时间控件(而且是独立,都可以为空),那写SQL语句得多麻烦。所有还是想了解下,呵呵。
IF object_id('person') IS NOT NULL
DROP TABLE person
DECLARE @person TABLE
(
tid INT IDENTITY(1,1) PRIMARY KEY,
tname VARCHAR(30),
tsex VARCHAR(4),
tphone VARCHAR(11),
birthday DATETIME
)
INSERT INTO @person
SELECT 'kaka','男','13018392505','2012-01-21'
INSERT INTO @person VALUES('Janmes','男','13018392566',NULL)SELECT * FROM @person
/*
tid tname tsex tphone birthday
----------- ------------------------------ ---- ----------- -----------------------
1 kaka 男 13018392505 2012-01-21 00:00:00.000
2 Janmes 男 13018392566 NULL(2 行受影响)
*/插入null肯定是可以的,但是不建议这么做,设置默认值为好
在尽可能的情况下,我们寻求最完善的方法.
LZ 问的很平常的一个问题,你SB的回答缺心眼做甚!缺心眼啊?你给你的显示控件复制之前,先判断生日是否是你的默认值,如果是手动赋值“”