【cmd里javac运行不成功】
解决:环境变量的上面设置一下path,指定到jdk的bin包。【安装新版本的jdk,但是开发环境还是老版本】
解决:window-java-Installed JRES-右侧,勾选上新安装jdk,然后点ok【db2删除字段】
alter table 表名 drop column 字段名【如何让winform的combobox只能选不能输入】
DropDownStyle 属性确定用户能否在文本部分中输入新值以及列表部分是否总显示。
值:
DropDown --- 文本部分可编辑。用户必须单击箭头按钮来显示列表部分。
DropDownList --- 用户不能直接编辑文本部分。用户必须单击箭头按钮来显示列表部分。
Simple --- 文本部分可编辑。列表部分总可见。
【ReferenceEquals、Equals、静态Equals的区别】
ReferenceEquals:静态方法,不能重写,只能比较引用,如果有一个参数为null会返回false,不会抛出异常,如果比较值类型,则始终返回false。Equals:实例方法,默认可以比较引用也可以比较值,可以重写。可以按值比较对象。
静态Equals:静态方法,不能重写。如果没有重写Equals,比较引用,或者比较值。如果重载了Equals方法。比较引用,或者比较值,或者按重写的Equals比较,如果其中一个参数为null,抛出异常
==运算符:可以按引用比较,也可以按值比较。可以重写。是操作运算符。
最后需要的是,如果重载了Equals,则最好是重载GetHashCode,必须重载==运算符。
【禁止textbox剪切数据】
设置ShortcutsEnabled属性为false。 【禁止textbox拖拽数据】设置AllowDrop属性为false。 【替换字符sql语句】update 表名set 字段名=replace(字段名,'要替换的字符','替换后的字符')【2013-01-09】
106数据库用户名密码:db2admin abc123!@#bugfree:886、867、861B:一致性校验举证修改数据时,后台保存字段错误。(现修改主审机构审核意见,应修改银行说明)B:一致性导入方法B2:用户管理密码修改权限。如果是超级管理员,可以修改任何人;其余只能修改自己【2013-01-05】
rules.xml::\项目资料\2012客户风险预警系统\2012CustomerRisk\03_编码目录\03_银监会应用\01_银监会版客户端\CustomerRisk\RuleCheck\bin\Debug待确定加入模块:任务管理、校验规则更新
SpecialCheckFacade→TS004→globalValue:查询的时候需要用值,在校验之前将值封装到该类的对应值里。数据采集:序号问题,选择框没有出现(已解决)
【tabPage除了第一页,其它页内的按钮控件均不能应用样式】
.cs文件里:页面加载: FormTools.SetTabPageSkin(tabReport.SelectedTab);选项卡选择索引改变时: private void tabReport_SelectedIndexChanged(object sender, EventArgs e) { FormTools.SetTabPageSkin(tabReport.SelectedTab); }工具类里: /// <summary> /// 设置 tableControl的皮肤运用(tableControl中的子控件也设置了皮肤的运用), /// </summary> /// <param name="tabPage"></param> public static void SetTabPageSkin(System.Windows.Forms.TabPage tabPage) { frmMain.skinFramework.ApplyWindow(tabPage.Handle.ToInt32()); frmMain.skinFramework.EnableThemeDialogTexture(tabPage.Handle.ToInt32(), 6); SetTabPageSubControlSkin(tabPage); } 【File.GetSaveFileName(i)报错。 系统不支持该方法】改为adjunct.Name = fileName.Substring(fileName.LastIndexOf(@"\") + 1);【上传附件】
OpenFileDialog open = new OpenFileDialog(); open.Multiselect = true; open.Filter = "文本文件(*.txt)|*.txt;*.doc;*.pdf;*.xls|所有文件(*.*)|*.*"; open.CheckFileExists = true; open.CheckPathExists = true;DialogResult result = open.ShowDialog();
if (result == DialogResult.OK)
{ for (int i = 0; i < open.FileNames.Length; i++) { if (File.Exists(open.FileNames[i])) { M_ADJUNCT adjunct = new M_ADJUNCT(); adjunct.Name = open.SafeFileNames[i].ToString(); adjunctList.Add(adjunct); byte[] file = File.ReadAllBytes(open.FileNames[i]); hsAjunctList.Add(open.SafeFileNames[i], file); } } ReportBind(adjunctList); }【2012-12-14】
model 里面添加了一个vo叫 Message_Vobll里面在MessageBll.cs添加了一个方法service里面MessageAction 里面也添加了一个方法方法名叫Boolean addMessage(List<M_BANK> bankList, Message_Vo vo);两种方法:1)用CONCATENATE (text1,text2,...)函数。text1, text2, ... 为 1 到 30 个将要合并成单个文本项的文本项。这些文本项可以为文本字符串、数字或对单个单元格的引用。例如:=CONCATENATE("Stream population for ",A2," ",A3," is ",A4,"/mile")2)用 & 运算符。格式为:=text1 & text2 & text3 & ……例如:="Stream population for " & A2 & " " & A3 & " is " & A4 & "/mile"结果与(1)相同。注意:Excel的字符串是用双引号引起来的。
去空格的拼接
=CONCATENATE("insert into M_DICT_ITEM(itemcode,itemname,parentid,classid) values ('",D5,"','",SUBSTITUTE(E5," ","") ,"','1017',","141",");") 【项目后期加校验2012-12-04】解决:查找项目中所有 //加调用后台校验的位置。 【文本框只能输入数字和一个小数点】解决:.cs后台里:private void txt_KeyPress(object sender, KeyPressEventArgs e) { CommonTools.formatInput(sender, e); }公共类:
public class CommonTools { #region 只能输入小数点和数字 public static void formatInput(object sender, KeyPressEventArgs e) { if ((e.KeyChar < '0' && e.KeyChar != '.' || e.KeyChar > '9' && e.KeyChar != '.' || ((TextBox)(sender)).Text.IndexOf('.') >= 0 && e.KeyChar == '.') && e.KeyChar != (char)13 && e.KeyChar != (char)8) { e.Handled = true; } } }【找不到指定模块】
解决:如果文件确定没有错误,就重新注册下。运行setup.bat。【DB2列名与powerDesigner列名大小写问题】
解决:在建立DB2表的时候,直接写列名,不要在列名上加双引号,这样大小写通用了。 【三个选项卡,第一个能正确套用样式,第二个和第三个不能正确套用样式】解决:在构造里加 FormTools.SetControlStyle(this);/// <summary>
/// 设置窗体的样式为系统样式,避免由于主窗体的皮肤加载时,子窗体中的样式还是保持个性化的问题 /// </summary> /// <param name="form"></param> public static void SetControlStyle(System.Windows.Forms.Form form) { try { foreach (System.Windows.Forms.Control crol in form.Controls) { if (crol.HasChildren) { SetSubControlStyle(crol); } else { if (crol.GetType() == typeof(System.Windows.Forms.Label)) { ((System.Windows.Forms.Label)crol).FlatStyle = FlatStyle.System; } else if (crol.GetType() == typeof(System.Windows.Forms.Button)) { ((System.Windows.Forms.Button)crol).FlatStyle = FlatStyle.System; } else if (crol.GetType() == typeof(System.Windows.Forms.CheckBox)) { ((System.Windows.Forms.CheckBox)crol).FlatStyle = FlatStyle.System; } else if (crol.GetType() == typeof(System.Windows.Forms.RadioButton)) { ((System.Windows.Forms.RadioButton)crol).FlatStyle = FlatStyle.System; } // 2009-12-01 chxp 将 AxXtremeReportControl 的 there are no items to show 提示信息修改为空 else if (crol.GetType() == typeof(AxXtremeReportControl.AxReportControl)) { AxXtremeReportControl.AxReportControl reportControl = (AxXtremeReportControl.AxReportControl)crol; reportControl.PaintManager.NoItemsText = " "; } } } } catch (Exception ex) { LoggingService.Error(ex.ToString()); MessageBox.Show(ex.ToString()); }}
【页面不能正确套用样式】解决:在Program.cs中是否注释Application.EnableVisualStyles();
【把datarow[] 转为dataTable】
解决:DataRow[] drs = dtReportRecord.Select("1=1" + year + month + name + state + times); DataTable dt = dtReportRecord.Clone(); foreach (DataRow dr in drs) { DataRow drw2 = dt.NewRow(); drw2.ItemArray = dr.ItemArray; dt.Rows.Add(drw2); } 【ReportControl不显示图片】解决:去掉program.cs里的Application.EnableVisualStyles();这句话就好了。【分页】
解决:其它的方案:如果没有主键,可以用临时表,也可以用方案三做,但是效率会低。 建议优化的时候,加上主键和索引,查询效率会提高。 通过SQL 查询分析器,显示比较:我的结论是: 分页方案二:(利用ID大于多少和SELECT TOP分页)效率最高,需要拼接SQL语句 分页方案一:(利用Not In和SELECT TOP分页) 效率次之,需要拼接SQL语句 分页方案三:(利用SQL的游标存储过程分页) 效率最差,但是最为通用【无法打开.cs设计界面】
解决:清空所在位置的obj文件夹,然后关闭项目,再打开,生成。 ok【创建压缩文件时,把文件的绝对路径也压缩了】
解决:ZipEntry entry = new ZipEntry(YaSuoFileName); //YaSuoFileName只写文件的名称,不写文件的路径,完整代码如下: Crc32 crc = new Crc32();ZipOutputStream s = new ZipOutputStream(File.Create(MuBiaoFilePath));s.SetLevel(6); // 0 - store only to 9 - means best compression//打开压缩文件
FileStream fs = File.OpenRead(YaSuoFilePathAndName);byte[] buffer = new byte[fs.Length];fs.Read(buffer, 0, buffer.Length);ZipEntry entry = new ZipEntry(YaSuoFileName);entry.DateTime = DateTime.Now;entry.Size = fs.Length;fs.Close();crc.Reset();crc.Update(buffer);entry.Crc = crc.Value;s.PutNextEntry(entry);s.Write(buffer, 0, buffer.Length);s.Finish();s.Close();【C#前台,调用JAVA后台,hessian报错:expect hessian reply】解决:java端方法有问题
【C#前台,调用JAVA后台,hessian报错:Integer bug found :83】解决:查看双方实体类的字段类型
【winform对话窗体被关闭时,刷新父窗体的值】
解决:现在子窗体添加语句 public 父窗体名 lizi;父窗体:在打开子窗体事件里加上 子窗体实例名.lizi=this;最后在关闭子窗体事件里添加语句 lizi.shuaxin();注:shuaxin() 方法是在父窗体定义的显示数据的方法。 【最基本的编码要求】1.编码规范:命名,注释2.注重界面样式3.面向对象编程4.先学会读别人的代码,然后参考别人代码写。当前系统框架相对完善,一般不会轻易改变,先把当前的掌握。【Dispose未能找到合适的方法来重写】
解决:检查命名空间和窗体名字【XX初始值设定引发异常】
解决:检查配置文件是否存在,路径是否正确【窗体传实体类】
解决:1.作为参数传给子窗体 父: frmRoleManager role = new frmRoleManager(user); //此user为当前窗体的数据 子: private static RBAC_USER_VO user = new RBAC_USER_VO(); public frmRoleManager(RBAC_USER_VO vo) { InitializeComponent(); userVo = vo; } 2.public 属性 父: RBAC_USER_VO user = e.row.Record.Tag as RBAC_USER_VO; if (user != null) { frmRoleManager role = new frmRoleManager(); role.userVo = user; //role.userVo为子窗体里设置的公共属性 role.ShowDialog(this); } 子: public RBAC_USER_VO userVo = null; public frmRoleManager(RBAC_USER_VO vo) { InitializeComponent(); userVo = vo; } 3.父: RBAC_USER_VO user = e.row.Record.Tag as RBAC_USER_VO; frmRoleManager role = new frmRoleManager(); role.tag=user; role.ShowDialog(this); 子: frmMain main = (frmMain)this.Owner; user = main.Tag as RBAC_USER_VO;这种方法不可取,循环嵌套。
【c#有两种构造器】
实例构造器和静态构造器。实例构造器:负责初始化类中的变量,它只有在用户用new关键字对对象分配内存时才被调用。而且作为引用类型的类 其实例化对象必然被分配在托管堆上。 (托管:该内存受CLR运行时管理)
【使用CODEJOCK,重装系统后,遇到】 ((System.ComponentModel.ISupportInitialize)(this.CommandBars)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.ImageManager)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.DockingPaneManager)).EndInit();此三行代码报错:无法找到指定模块,错误来自于X0007...解决:在codejock文件夹下有setup批处理文档,运行setup,重新注册一下,就可以解决了 【引用类型和值类型】如果传递的参数是基元类型(int,float等)或结构体(struct),那么就是传值调用。
如果传递的参数前有ref或者out关键字,那么就是传引用调用。
如果传递的参数是类(class)并且没有ref或out关键字:
如果调用的函数中对参数重新进行了地址分配(new操作),那么执行结果类似传值调用如果调用的函数中没有对参数重新进行了地址分配,直接就是使用了传递的参数,那么执行结果类似传引用调用【delegate语法】this.button1.Click += delegate { MessageBox.Show("测试皮肤是否正常显示!","系统提示",MessageBoxButtons.OK); };