摘要:
如果在Treport的DataSet属性中选定一个Table,那么QuickReport每次打印详细列表(BandType=rbDetail)属性的TQRBand时,系统会自动取出一个记录供打印,并将表中的记录指针移到下一位,这样程序无法控制表中记录指针的移动,就无法实现多栏打印。因此,只要程序不在Treport的DataSet属性选定任何表, QuickReport便不会控制表记录的提取。 QuickReport特为其它类型数据打印提供了一个OnNeedData事件,QuickReport每次打印详细列表属性的TQRBand时,会触发这个事件,要求提供打印数据,如果程序在OnNeedD... 阅读全文
摘要:
1)先设置DeleteItem为空,不让它调用自动生成的删除代码。2)然后自己写代码实现,如下:private void bindingNavigatorDeleteItem_Click(object sender, EventArgs e){ if (MessageBox.Show("确认删除吗?", "删除前确认", MessageBoxButtons.OKCancel) == DialogResult.OK) { myDbTestDataSet.myTable.Rows[bindingNavigator1.BindingSource.Positio 阅读全文
摘要:
1.1 注释使用 在语句中多写注释,注释不影响SQL语句的执行效率。增加代码的可读性。1.2 对于事务的使用 尽量使事务处理达到最短,如果事务太长最好按功能将事务分开执行(如:可以让用户在界面上多几步操作)。事务太长很容易造成数据库阻塞,用户操作速度变慢或死机情况。1.3 对于与数据库的交互 尽量减少与数据库的交互次数。如果在前端程序写有循球访问数据库操作,最好写成将数据一次读到前端再进行处理或者写成存储过程在数据库端直接处理。1.4 对于SELECT *这样的语句, 不要使用SELECT *这样的语句,而应该使用SELECT table1.column1这样的语句,明确指出要查询的列减少数据 阅读全文