程序如下:private void BCLogon_Load(object sender, System.EventArgs e)
{
StreamReader sw = new StreamReader("conn.ini");
c.BCConn = sw.ReadLine();
sw.Close();SqlConnection connStr = new SqlConnection();
connStr.ConnectionString = c.BCConn;
strCom="";
strCom="select CompaniesCode,CompaniesName from BCCompanies";
SqlCommand cmd_company = new SqlCommand(strCom,connStr);
//
DataSet ds_company = new DataSet();
//
SqlDataAdapter da_company = new SqlDataAdapter(cmd_company);
//
connStr.Open();
da_company.Fill (ds_company,"Company");
connStr.Close(); } private void BCLogon_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
DialogResult result=MessageBox.Show("确认要离开BarCode系统吗?","BarCode系统提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question,MessageBoxDefaultButton.Button1);  
if(result==DialogResult.Yes)  
{
e.Cancel=false;
Application.Exit();
}
else
{
e.Cancel=true; 
}
} private void Confirm_Click(object sender, System.EventArgs e)
{
if(this.CompanyNo.Text.ToString().Trim()=="")
{
MessageBox.Show("请选择您要登录的公司");
return;
} if(this.UserNo.Text.ToString().Trim()=="")
{
MessageBox.Show("请选择登录用户名");
return;
} SqlConnection connStr = new SqlConnection();
connStr.ConnectionString = c.BCConn; strCom="";
strCom="select * from BCUser where UserNo = '"+this.UserNo.Text.ToString().Trim()+"'  and CompaniesNo = '"+this.CompanyNo.Text.ToString().Trim()+"'";
SqlCommand cmd_pwd = new SqlCommand(strCom,connStr); DataSet ds_pwd = new DataSet(); SqlDataAdapter da_pwd = new SqlDataAdapter(cmd_pwd); connStr.Open();
da_pwd.Fill (ds_pwd,"Pwd");
connStr.Close(); if(this.Password.Text.ToString().Trim()==ds_pwd.Tables["Pwd"].Rows[0]["UserPwd"].ToString().Trim())
{
BCMain main = new BCMain();
main.Show();
this.Hide();
}
else
{
MessageBox.Show("请再次输入正确密码!");
return;
}
}
我在form_Load
的时候,读取目录下的conn.ini文件,获得连接字符串。但是运行的时候报错
说:
--------------------------------------------------------------
一个托管的TypeLoadException发生在Form::OnLoad+0x15Form::OnLoad+0x15
Form::_SetVisibleNotify+0x1d
Control::set_Visible+0x1f
Application::Run::0x7
BCLogon::Main+0xa
---------------------------------------------------------------------------
然后我将LOad时间中读取链接字符串的语句注释掉后,界面就能显示出来了,
但是,在按确定,也就是判断判断用户名和密码对不对的时候,报错
显示错误信息:
-------------------------------------------------------------
一个托管的TypeLoadException发生在Application::Run+0xfApplication::Run+0xf
BCLogon::Maub+0xa
-------------------------------------------------------------BCLogon为登录的画面名谢谢各位拉!

解决方案 »

  1.   

    难道是我给PDA安装的frameworkCF不是我编译时候用到的FrameWork,所以报这个错误?我查了下,说是:如果在任何地点都找不到文件,那么就会出现 TypeLoadException 异常。
      

  2.   

    类型加载失败发生时引发的异常。
    备注
    当公共语言运行库无法找到程序集、程序集内的类型或者无法加载类型时引发 TypeLoadException。TypeLoadException 使用值为 0x80131522 的 HRESULT COR_E_TYPELOAD。有关 TypeLoadException 实例的初始属性值列表,请参见 TypeLoadException 构造函数。我没遇到过。这个是不是你用到的组件没有完全部署上去。或者你使用的部分组件是x86指令集的?尝试一下清除bin目录中的生成代码和引用的自己写的dll,重新用wince.net/ppc设备方式编译一下试试?^_^多谢楼主这么看得起。不过我也没遇到过。只能猜测到这里。
      

  3.   

    我是将debug里面的直接拷贝到PDA上,然后运行的,在这之间已经安装了FX,不知道是不是组件没有完全部署的关系,我用的是笔记本编写的程序么,不能在编译时候直接部署到PDA上,我现在正在配置PC机,到时我再测试一下。谢谢
      

  4.   

    我配置好了PC机,现在将程序拷贝上面开始测试。我将程序运行的时候部署到Win CE.NET 模拟器 上的时候运行成功,但是直接部署到Windows CE.NET 设备上的时候,弹出对话框“出现部署错误,是否继续?”不知道这个是什么原因啊?那里有问题都不知道的说
      

  5.   

    部署不上去,晕。说是物理连接是否正确。但是,我能通过ActiveSync连接到PDA的啊,残念。我要死了
      

  6.   

    部署不上去不要紧,自己拷上去就可以了。把需要的东西准备齐全,而且都是.net cf的。就可以了。仔细看看你生成的那个是wince.net设备还是wince.net模拟器。没什么了。部署没什么大问题的。细心点。
      

  7.   

    我使用ActiveSync能连接的上,但是部署的时候报错。我现在下载了.NET Compact Framework 1.0 SP3 ,在PC上安装好,然后我删除了bin下面的debug文件夹,并重新生成了解决方案,此时,我debug文件夹里面就产生了2个文件,一个是执行文件EXE,另一个是.PDB文件(这个应该是调试用的吧),然后我将EXE拷贝到PDA上执行,弹出错误是说这个应用程序需要一个比这个设备(也就是PDA拉)已安装版本更新的.NET CF。。如果能部署的话,.NET会自己安装的吧,但是我现在不知道要安装的这个CF在哪里
      

  8.   

    我现在在将SDK目录下V1.0.5000\windows ce\wce400\netcf.all.wce4.armv4拷贝到PDA上进行安装,试了几个,没个对的
      

  9.   

    我看了下,在部署到模拟器上时,NET拷贝了3个文件过去安装,分别试:netcf.all.wce4.x86.cab
    System_SR_chs.cab
    sql.wce4.x86.cab我也将这些都拷贝过去安装试试不过,X86好像是通用型的CPU指令集。而PDA应该是ARM嵌入式CPU,不知道该用ARM的还是X86,我试试X86先
      

  10.   

    使用了ARM的,不再报版本不够了,不过还是有个问题,然后我设置MSG看了下,是再connStr.Open();   也就是打开连接的时候出错。
    我的连接是这么写的:
    c.BCConn = "server=scalatest.jdr.com.cn;database=BarCode;uid=sa;pwd=5570570";SqlConnection connStr = new SqlConnection();
    connStr.ConnectionString = c.BCConn;
    connStr.Open(); 出错。
    不知道是不是因为PDA上的连接不能这么写,我换个写法试试。
      

  11.   

    我是使用了命名空间System.Data.SqlClient不过SQL CE我是没用,也不会用,我这个是直接连接PC机上的SQL2000的是不是要先连到SQLCE,再由SQLCE连接到SQL2000?不能直接连到SQL2000的?SQL2000的版本是不是一定要SP3啊?