System.Windows.Forms.Design.DataGridViewColumnCollectionEditor
而你UserControl中的Columns属性用的是默认的Collection编辑器:
System.ComponentModel.Design.CollectionEditor
两个编辑器看起来很像,但却不是同一回事。
而且,专门的编辑器还有一个步骤让用户指定ColumnType。
这就是为什么你的自定义森行的Columns设计期间出现“...它的cellType属性为空”异常的原因。
直接用DataGridViewColumnCollectionEditor来编辑你的自定义属性会有一个问题 -
编辑器会把当前实例转换为DataGridView,而你自定义Columns所在的实例却哗拦是UserControl,
这将造成一个转换错误。
自己写个编辑器可以解决问题,不过,会很此芦哗麻烦的。
以sqlserver数据库为例,解决方案:
1、点击数据库毁毁表右键的【设计】;
2、把影响到的列改成允许为空;
3、点击【保存】。
原因:SQL存储过程语法可能是正确的,因为语法并没有对表结构内部字段是否非空进行验证,只有执行了才知道。可以选择编辑前200行,看一下是不是新增了列,但是列里面的值是null,然后又念余州在设置的列里面不允许有null,这样就不允许保存了。
扩展资料:
SQL Aggregate 函数计算从列中取得的值,返回一个单一的值。
有用的 Aggregate 函数:
AVG() - 返回平均值,COUNT() - 返回行数,FIRST() - 返回第一个记录的值
LAST() - 返回最后一个记录的值,MAX() - 返回最大值,MIN() - 返回最小值,SUM() - 返回总和。
SQL Scalar 函数基于输入值,返回一个单一的值。
有用的 Scalar 函数:
UCASE() - 将某个字段转换为大写,LCASE() - 将某个字段转换为小写,MID() - 从某个文本字段提取字符
LEN() - 返回某个文本字段的长度,ROUND() - 对某个数值字段进行指定小数位数的四舍五入,NOW() - 返回当仔蔽前的系统日期和时间,FORMAT() - 格式化某个字段的显示方式。
参考资料:百度百科——sql
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)