我假设SqlParameter.IsNullable只在……时才有意义?
1)当SqlParameter.IsNullable
设置为true
,收到的null
值将转换为DBNull.Value
并发送到数据库。 因此,当GridView的Parameter.ConvertEmptyStringToNull
也设置为true
时,我认为设置IsNullable
为true
才有意义?
2)GridView和ObjectDataSource的参数都有ConvertEmptyStringToNull
属性。 但是有没有(在尝试更新数据源时)的情况:
•我们应该将GridView的Parameter.ConvertEmptyStringToNull
设置为true
,但是然后将ObjectDataSource的Parameter.ConvertEmptyStringToNull
设置为false
?
•或者我们应该将GridView的Parameter.ConvertEmptyStringToNull
设置为true
,但是SqlDataSource的SqlParameter.IsNullable
为false
?
Ans:1:当SqlParameter.IsNullable设置为true时,收到的null值将转换为DBNull.Value并发送到数据库。 因此,当GridView的Parameter.ConvertEmptyStringToNull也设置为true时,我认为设置IsNullable为true才有意义? – 只是是的
对于您的所有问题,答案通常都是“否”,因为并非总是存在DataGrid,这不是显示数据和从用户获取输入的唯一方式。
如果您的用户界面以其他方式提供数据(例如DetailView,FromView,手工制作窗口或页面等等),或者您根本没有UI,并且您的数据来自其他来源,那么您可能拥有独立于不存在的DataGrid处理IsNullable
和/或ConvertEmptyStringToNull
属性!
特别是IsNullable
,当您调用存储过程时,应该匹配sp的参数定义。