问题记录

记录平时开发中遇到的小问题

1.用动软生成器生成的类库操作数据时,提示 “DBUtility.DbHelperSQL”的类型初始值设定项引发异常”

解决:引用原来项目的dll操作数据库,当前项目忘了配置数据库连接字符串了。在web.config中添加数据库连接字符串即可

2.读取xml时出现“分析EntityName时出错”

解决:将xml中出现的特殊字符转义 如:"&" 改写为"&"

3.后台设置textbox为只读,但想得到它的值

解决:在加载页面时在后台这样设置:TextBox1.Attributes.Add("readonly",   "true");

4.就如下代码,还总是提示js错误

 function checkall(){
   alert('test')

}

<input type="checkbox"  name="checkall" id="checkall" onclick="checkall()" />全选

解决:原来控件的id,name不能和方法的名称相同,修改为不相同即可

5.操作oracle时提示:ORA-01008: not all variables boun(ora-01008 并非所有变量都已关联)

解决:就是null值的问题,将所有的nul值改为DBNull.Value就好了,如红色字体所示

foreach (OracleParameter parm in cmdParms)
                {
                    if (parm.Value == null)
                    {
                        parm.Value = DBNull.Value;
                    }
                    cmd.Parameters.Add(parm);
                }

6.Error:在 .net webservice 类型不明确他可能来自程序集 或者程序集 请在类型名称中明确的指明程序集

解决:删除出错文件类库的bin文件夹下的dll,重新生成即可

7.WIN7下IE8的开发人员工具只在任务栏显示,但打不开

解决:将鼠标放在任务栏上出现的开发人员工具上,在出现的预览窗口上点击最大化即可解决。

8.无法加载DLL “abc.dll”:找不到指定的模块。(异常来自HRESULT:0x8007007E)

解决:用软件depends.exe打开abc.dll找到标记为问号的dll,这些即为缺失的dll,从其他地方找到这些dll复制到abc.dll同级目录即可。

9.打开VS2008时提示:遇到错误。建议您尽快重新启动应用程序。
                               错误:不支持此接口
                               文件:vsee\internal\inc\vscomptr.inl
                               行号:256


解决:在VS2008命令提示窗口中执行 "devenv.exe /ResetSkipPkgs" 即可

10.未能加载文件或程序集……或它的某一个依赖项。参数不正确。 (异常来自 HRESULT:0x80070057 (E_INVALIDARG))

解决: 删除 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary  ASP.NET files 文件夹

11.使用SqlBulkCopy批量复制数据时出现:

在从服务器接收结果时发生传输级错误。(provider:TCP提供程序,error:0-提定的网络名不再可用)

A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - The specified network name is no longer available.)

并且目标数据库服务器将自动停止。

原因:导入的数据源字段的长度大于目标数据库中的字段。

12.调用webservice方法时,执行大约一分钟时报“System.Threading.ThreadAbortException: 正在中止线程”错误。

在webservice的web.config设置debug=“true”时没有问题,debug=“false”则会出现

原因: web.config的httpRuntime元素中有属性 executionTimeout配置请求允许的时间。在.NET Framework 4.0以下默认为90秒,以上为110秒。

且此属性只有当 compilation元素中的调试特性(debug)设置为 false 时,此超时属性才适用。

解决:将executionTimeout属性设置为一个比较大的数即可。

13.两个用户同时调用webservice方法,此webservice方法比较耗时,且在执行过程中会修改web.config值。导致先执行的报“System.Threading.ThreadAbortException: 正在中止线程”错误。

原因:前一个用户正在执行一个比较费时的操作,此时后一个用户修改了web.config,导致进程被中止。但不是立即中止,大约在两分钟后才会中止抛出错误。

解决:避免在运行时修改web.config.

14.事务回滚时报“System.Data.SqlClient.SqlException: 超时时间已到。在操作完成之前超时时间已过或服务器未响应。”

原因:此事务进行了大数据量的操作,因此回滚比较费时;但是设置事务的SqlCommand的CommandTimeOut属性不起作用,通过反编译事务类后发现,原来此处的超时时间是SqlConnection的ConnectionTimeout属性。

解决:在连接字符串中加上Connection Timeout=120 即可。

15.客户端连接WebService时,报An error was discovered processing the <Security> header或time expired错误。

原因:webService中用了Microsoft.Web.Services2,且客户端时间和服务器时间相差超过了5分钟,目前没有发现有其它好的解决方法。只能将两台机器时间调整同步。

16.winform中TableLayoutPanel控件内的Label的Text值频繁改变(0.1秒)时,整个TableLayoutPanel闪烁

解决:给TableLayoutPanel设置开启双缓冲。代码如下(vb.net):

tblpDownload.GetType().GetProperty("DoubleBuffered", System.Reflection.BindingFlags.Instance Or System.Reflection.BindingFlags.NonPublic)
.SetValue(tblpDownload, True, Nothing)

 

 

 

posted @ 2010-04-19 15:14  jinjiabo  阅读(1209)  评论(0编辑  收藏  举报