我假设SqlParameter.IsNullable只在……时才有意义?

1)当SqlParameter.IsNullable设置为true ,收到的null值将转换为DBNull.Value并发送到数据库。 因此,当GridView的Parameter.ConvertEmptyStringToNull也设置为true时,我认为设置IsNullabletrue才有意义?

2)GridView和ObjectDataSource的参数都有ConvertEmptyStringToNull属性。 但是有没有(在尝试更新数据源时)的情况:

•我们应该将GridView的Parameter.ConvertEmptyStringToNull设置为true ,但是然后将ObjectDataSource的Parameter.ConvertEmptyStringToNull设置为false

•或者我们应该将GridView的Parameter.ConvertEmptyStringToNull设置为true ,但是SqlDataSource的SqlParameter.IsNullablefalse

Ans:1:当SqlParameter.IsNullable设置为true时,收到的null值将转换为DBNull.Value并发送到数据库。 因此,当GridView的Parameter.ConvertEmptyStringToNull也设置为true时,我认为设置IsNullable为true才有意义? – 只是是的

对于您的所有问题,答案通常都是“否”,因为并非总是存在DataGrid,这不是显示数据和从用户获取输入的唯一方式。

如果您的用户界面以其他方式提供数据(例如DetailView,FromView,手工制作窗口或页面等等),或者您根本没有UI,并且您的数据来自其他来源,那么您可能拥有独立于不存在的DataGrid处理IsNullable和/或ConvertEmptyStringToNull属性!

特别是IsNullable ,当您调用存储过程时,应该匹配sp的参数定义。