一些开发中遇到的小问题小记(持续更新中)
2015-06-25 11:17
519 查看
1. C# 中 DataGridView 中如果 allowUserAddRow 属性为 true 时,DataGridView 中永远会多出空白的一行
2.在sql server 中 使用select ROW_NUMBER() over(Order by column1,column2) as NO1 from table1 order by column1,column2 后排序的顺序可能导致NO1是不连续的,
因为可能存在 column1,column2相同的数据,第一次排序和第二次可能导致结果不一样 ,建议改成 order by NO1
3. 在sql 中 不能在子查询中 用 order by 语句
4.C#中使用 LISTBOX 实现多选的时候,获得多选值的问题
//绑定数据源
ListBox1.datasource = Datatset.Table["1"];
LitsBox.displayMember ="columeName"
//获得多选的数据
ArrayList arrDate = new ArrayList();
for(int i=0;i<ListBox.SelectItems.count;i++){
arrDate.add(ListBox.SelectItems[i].toString());
}
结果:在arrDate 的值都是
System.Data.DataRowView
原因分析:因为在item 绑定的都是 dataRowView 而 DataRowView 没有重载 ToString(),所以打印出来的是
类型
问题解决方案:
for(int i=0;i<ListBox.SelectItems.count;i++){
DataGirdView dv =((system.Data.DataRowView) ListBox.SelectItem[i]);
arrDate.add(dv["columName"].toString());
}
5.在DATAGridView 绑定数据后,对其中的某行进行隐藏不可见的时候使用 DATAGridView.Rows[i].Visable = false ;
程序报“与货币管理器的位置关联的行不能设置为不可见。”的异常信息
需要对绑定数据进行挂起后操作(CurrencyManager 或一个 PropertyManager 如果数据源是只能返回单个属性的对象(而不是对象列表),该类型则为 PropertyManager。 )
CurrencyManager cm = (CurrencyManager ) BindingContext[DatagridView.dataSource];
//数据挂起
cm.SuspendBinding();
DATAGridView.Rows[i].Visable = false ;
//数据继续绑定
cm.ResumeBinding();
5.导表的时候,导入一个含有自增列的表,先同步了表结构,然后使用inset into tableA select top * from tableB 结果报错 “列表并且 IDENTITY_INSERT 为 ON 时,才能为表'T_CAR_INFO'中的标识列指定显式值。” 后来在网上找到是使用set IDENTITY_INSERT tableA ON 语句 然后继续inset into tableA select top * from tableB 错误同样出现
到网上找了很多资料,都没有找到,后来发现,是后面语句问题后面语句还是要一个一个字段写出了如:insert into TableA (column1,column2,column3) select column1,column2,column3 from tableB 但是这样对于很多字段的表就会浪费好大的工作量,后来想通过改表结构把该列设为非标志列,后来就遇到了在sqlserver工具中遇到的同样的问题就是不能修改已经建立的表结构,这个额问题好像在之前也遇到过,在工具选项中 ,设计,去掉阻止要求保存重建表结构的勾选
6.在写SQL语句的时候,where条件下存在多个条件,特别是存在OR 条件的时候,注意带上 ()
7. 在写sql 多表在内联的的时候,如果某字段存在NULL 值的时候,这个字段在关系的时候这条数据是永远不会出来,即使另外一个表也存在NULL值,因为在数据库中 任何值=null 都是false
8.在sql server 中使用 update a set a.column1= a.column1 + b.column2 from a ,b where a.column1= b.column1 时出现,如果column1 为null时 null+任何值 都为null
9. 在sql server 中 使用 SUBSTRING(string ,star,length) 时候,在sql server 中String是从1开始计算的,如果Star 设置为 0或者小于1的数值时不会报错,直接开始计算会导致最后截取的字符小于实际的length,因为小于1开始的值截取都是无效值
10.在TEXTBOX框中添加设置换行
11.设置DATAGRIDVIEW 中 颜色时候 当设置为 DATAGRIDVIEW.ROWS[0].Cells[1].BackColor= color.red 之后想把改行颜色设为默认色的时候 无论使用
DATAGRIDVIEW.SelectROWS[0].DefaultCellStyle.BackColor= color.Empty 颜色没有效果 只能单个单个单元格设置才有效果,因为单元格的颜色优先级高于整行的颜色,所以当单元格存在颜色的情况下以单元格之前的颜色为标准
12. 有如下一个表 查询表中 品种为水果 名称叫 香蕉的数据 select * from table1 where 品种 =‘水果’ and 名称 =‘香蕉’ 现在要查询品种不为水果且名称不叫香蕉的其他数据
select * from table1 where 品种<>'水果' and 名称<>'香蕉' (错) 应该为 select * from table1 where 品种<>'水果' or 名称<>'香蕉'(对)
2.在sql server 中 使用select ROW_NUMBER() over(Order by column1,column2) as NO1 from table1 order by column1,column2 后排序的顺序可能导致NO1是不连续的,
因为可能存在 column1,column2相同的数据,第一次排序和第二次可能导致结果不一样 ,建议改成 order by NO1
3. 在sql 中 不能在子查询中 用 order by 语句
4.C#中使用 LISTBOX 实现多选的时候,获得多选值的问题
//绑定数据源
ListBox1.datasource = Datatset.Table["1"];
LitsBox.displayMember ="columeName"
//获得多选的数据
ArrayList arrDate = new ArrayList();
for(int i=0;i<ListBox.SelectItems.count;i++){
arrDate.add(ListBox.SelectItems[i].toString());
}
结果:在arrDate 的值都是
System.Data.DataRowView
原因分析:因为在item 绑定的都是 dataRowView 而 DataRowView 没有重载 ToString(),所以打印出来的是
类型
问题解决方案:
for(int i=0;i<ListBox.SelectItems.count;i++){
DataGirdView dv =((system.Data.DataRowView) ListBox.SelectItem[i]);
arrDate.add(dv["columName"].toString());
}
5.在DATAGridView 绑定数据后,对其中的某行进行隐藏不可见的时候使用 DATAGridView.Rows[i].Visable = false ;
程序报“与货币管理器的位置关联的行不能设置为不可见。”的异常信息
需要对绑定数据进行挂起后操作(CurrencyManager 或一个 PropertyManager 如果数据源是只能返回单个属性的对象(而不是对象列表),该类型则为 PropertyManager。 )
CurrencyManager cm = (CurrencyManager ) BindingContext[DatagridView.dataSource];
//数据挂起
cm.SuspendBinding();
DATAGridView.Rows[i].Visable = false ;
//数据继续绑定
cm.ResumeBinding();
5.导表的时候,导入一个含有自增列的表,先同步了表结构,然后使用inset into tableA select top * from tableB 结果报错 “列表并且 IDENTITY_INSERT 为 ON 时,才能为表'T_CAR_INFO'中的标识列指定显式值。” 后来在网上找到是使用set IDENTITY_INSERT tableA ON 语句 然后继续inset into tableA select top * from tableB 错误同样出现
到网上找了很多资料,都没有找到,后来发现,是后面语句问题后面语句还是要一个一个字段写出了如:insert into TableA (column1,column2,column3) select column1,column2,column3 from tableB 但是这样对于很多字段的表就会浪费好大的工作量,后来想通过改表结构把该列设为非标志列,后来就遇到了在sqlserver工具中遇到的同样的问题就是不能修改已经建立的表结构,这个额问题好像在之前也遇到过,在工具选项中 ,设计,去掉阻止要求保存重建表结构的勾选
6.在写SQL语句的时候,where条件下存在多个条件,特别是存在OR 条件的时候,注意带上 ()
7. 在写sql 多表在内联的的时候,如果某字段存在NULL 值的时候,这个字段在关系的时候这条数据是永远不会出来,即使另外一个表也存在NULL值,因为在数据库中 任何值=null 都是false
8.在sql server 中使用 update a set a.column1= a.column1 + b.column2 from a ,b where a.column1= b.column1 时出现,如果column1 为null时 null+任何值 都为null
9. 在sql server 中 使用 SUBSTRING(string ,star,length) 时候,在sql server 中String是从1开始计算的,如果Star 设置为 0或者小于1的数值时不会报错,直接开始计算会导致最后截取的字符小于实际的length,因为小于1开始的值截取都是无效值
10.在TEXTBOX框中添加设置换行
11.设置DATAGRIDVIEW 中 颜色时候 当设置为 DATAGRIDVIEW.ROWS[0].Cells[1].BackColor= color.red 之后想把改行颜色设为默认色的时候 无论使用
DATAGRIDVIEW.SelectROWS[0].DefaultCellStyle.BackColor= color.Empty 颜色没有效果 只能单个单个单元格设置才有效果,因为单元格的颜色优先级高于整行的颜色,所以当单元格存在颜色的情况下以单元格之前的颜色为标准
12. 有如下一个表 查询表中 品种为水果 名称叫 香蕉的数据 select * from table1 where 品种 =‘水果’ and 名称 =‘香蕉’ 现在要查询品种不为水果且名称不叫香蕉的其他数据
select * from table1 where 品种<>'水果' and 名称<>'香蕉' (错) 应该为 select * from table1 where 品种<>'水果' or 名称<>'香蕉'(对)
相关文章推荐
- Introduction to C++ Programming in UE4
- iOS——Xcode上的Other linker flags
- 推荐一个金融软件开发的文档下载站
- 【转】WPF 给DataGridTextColumn统一加上ToolTip
- 指针的运算
- 关于iOS Push总结
- Java线程池使用说明
- 全排列生成算法:next_permutation
- POJ3321:Apple Tree(树状数组)
- sizeof和strlen
- GUI编程及文件对话框的使用
- 20150625_Andriod_01_ListView1_条目选中
- House Robber
- Linux中特殊权限--suid、guid
- jqGrid表格之自定义subGrid
- Access restriction: The type TelnetOutputStream is not accessible due to restric
- 按层次遍历二元树
- Android事件机制之一:事件传递和消费
- android瀑布流简单实现原理
- Joomla添加分类和文章时的目录数据结构