以下是编程过程中出现的问题(仅供参考,以后逐步更新)
一. VC++调试问题
1. errorLNK2019:无法解析的外部符号_main…
——原因:控制台方式(windows/console)错误
解决:右击项目,点击属性→链接器→系统→子系统→console改为windows。
2. 字符串要用_T(“字符串”)包含,并且要包含#include<tchar.h>头文件
3. ErrorC2664:”sprintf”不能将参数从”const wchar_t[]”转换成”constchar *”
——原因:VS2008,VS2010默认字符集是UNICODE字符集
解决:右击项目,点击属性→配置属性→常规→字符集。
4. 字符串的声明格式
——CString str;
Str.Format(“”,str);
5. errorC2143:syntax error missing’;’before’*’在“*”号之前少“;”
——原因:程序不认识定义的对象
解决:让编译器在用用对象定义之前就知道对象定义,将定义的语句移到头文件中,并放置在引用类的头文件之前。
二. ASP.NET调试问题
1.为再次显示网页,InternetExplore必须重新传送您之前送出的资讯…
——提交的表单还在后台处理,刷新之后提交的表单重新提交可能未对提交了的表单进行处理。
2.呼叫’FILL’之前,SelectCommand属性尚未初始化(查询数据库失败)
——原因:声明适配器时,忘记将适配器和命令相关联
解决:OleDbDataAdapter ad=new OleDbDataAdapter(cmd)。
3.无法识别的转义字符
——原因:字符串中包含“\”…之类的转义字符
解决:string conn=@”Data Source=ZLJ\SQLEXPRESS…”
4.在使用GridView,编译程序提示伺服器数据源冲突
——原因:即用了source ID=…,又用代码datasource=…同时绑定,只能使用一种进行绑定
解决:关闭数据源source ID,使GridView属性DataSourceID为空,推荐使用代码绑定,即GridView1.DataSource=dt.DefaultView;
GridView1.Bind();
5.runat=”server”和action跳转页面区别
——action将form数据给test.aspx页面,runat=”server”直接回交服务器处理数据
6.如何实现网页实时显示查询结果,比如查询GridView中的信息,并实时显示查询的结果
——重新声明一个适配器和内存数据表。
7.如何去掉刷新功能的警告,即不让提交的表单,再提交一次
——????????
8.若程序采用代码指定GridView的数据源,编译就一张空白页,并且无任何错误提示
——.aspx文件中GridView的属性GenerationColums(自动生成列)由False改成True
9.数据库用户登录失败
——连接字符串格式:Provider=*;DataSource=*;Password=*;UserID=*;Initial Catalog=*;
10.若文件改名,需要改.aspx文件中,记事本打开后,第一行CodeFile=”**.aspx.cs”用来指定使用哪个.cs文件
11.怎样让块DIV可移动
——属性position可设置relative;属性overflow添加滚动条
12.无效的授权规格
——原因:连接字符串connentionString设置有问题
解决:VS2010提供两种连接方式,a.直接指定Provider=*;DataSource=*;Password=*;UserID=*;Initial Catalog=*;
b.使用命令空间using System.Configuration;即声明连接字符串的格式为:privatestring strConn = "Provider=SQLOLEDB;" +ConfigurationManager.ConnectionStrings["IPQA_WCC"];
但是必须在web.config中设置
定义如下:
<connectionStrings>
-<!--
EPS_Web database
-->
<add name="EPS_WEB" connectionString="DataSource=20.40.1.47;Initial Catalog=DB_EPS_Web;Persist Security Info=True;UserID=epsae;Password=epsae" providerName="System.Data.SqlClient"/>
-<!--
IPQA工单检料database
-->
<add name="IPQA_WCC" connectionString="DataSource=20.40.1.47;Initial Catalog=IPQA_WCC;Persist Security Info=True;UserID=epsae;Password=epsae" providerName="System.Data.SqlClient"/>
</connectionStrings>
-<system.web>
13. string[0]:Size 屬性的大小 0 無效
——原因:存储过程的输出参数需指定长度
解决:指定存储过程的输出参数的size
cmd.Parameters.Add(new OleDbParameter("@WorkorderID", OleDbType.Integer)).Value = iWorkirderID;
cmd.Parameters.Add(new OleDbParameter("@MainPN", OleDbType.VarChar)).Value = strMainPN; //存储过程默认是输入参数
cmd.Parameters.Add(new OleDbParameter("@Result", OleDbType.VarChar,1024)).Direction = ParameterDirection.Output; //存储过程输出参数
cmd.ExecuteNonQuery();