1) When SqlParameter.IsNullable is set to true, received null value is converted to DBNull.Value and sent to database. Thus I would assume setting IsNullable to true only makes sense when GridView’s Parameter.ConvertEmptyStringToNull is also set to true?
2) Both GridView’s and ObjectDataSource’s parameters have a ConvertEmptyStringToNull property. But is there ever a situation where ( when trying to update data source ):
• where we should set GridView’s Parameter.ConvertEmptyStringToNull to true, but then set ObjectDataSource’s Parameter.ConvertEmptyStringToNull to false?!
• or where we should set GridView’s Parameter.ConvertEmptyStringToNull to true, but SqlDataSource’s SqlParameter.IsNullable to false?
Ans : 1: When SqlParameter.IsNullable is set to true, received null value is converted to DBNull.Value and sent to database. Thus I would assume setting IsNullable to true only makes sense when GridView’s Parameter.ConvertEmptyStringToNull is also set to true? - simply yes
The responses in general are "NO" to all your questions, because not always there is a DataGrid, which is not the only way to show data and or get an input from the user.
If your user interface provides data in another way (e.g. DetailView, FromView, hand-made-window-or-page, etc...), or you have not UI at all, and your data come from another source, you may have to deal with IsNullable and/or ConvertEmptyStringToNull properties independently from a DataGrid that does not exists!
IsNullable in particular, when you are calling stored procedures, should match the sp's definition of the parameter.
来源:https://stackoverflow.com/questions/941913/i-assume-sqlparameter-isnullable-only-makes-sense-when