zoukankan      html  css  js  c++  java
  • 一些问题与解决

    【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、861
    B:一致性校验举证修改数据时,后台保存字段错误。(现修改主审机构审核意见,应修改银行说明)
    B:一致性导入方法
    B2:用户管理密码修改权限。如果是超级管理员,可以修改任何人;其余只能修改自己

    【2013-01-05】
    rules.xml::项目资料2012客户风险预警系统2012CustomerRisk3_编码目录3_银监会应用1_银监会版客户端CustomerRiskRuleCheckinDebug

    待确定加入模块:任务管理、校验规则更新
    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_Vo
    bll里面在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); };

  • 相关阅读:
    linux系统编程综合练习-实现一个小型的shell程序(二)
    linux系统编程综合练习-实现一个小型的shell程序(一)
    Makefile学习二
    Makefile学习一
    jquery遍历:数组、对象、json
    ThinkPHP中:使用递归写node_merge()函数
    ThinkPHP中:多个项目共享同一个session问题
    多域名THINKPHP利用MEMCACHE方式共享SESSION数据
    ThinkPHP中:用户登录权限验证类
    ThinkPHP中:检查Session是否过期
  • 原文地址:https://www.cnblogs.com/m3Lee/p/3296828.html
Copyright © 2011-2022 走看看