扫描关注
微信公众
平台账号
首 页 > 服务与设计 > 常见问题
1. Visual Studio 2008与SQL Server 2008数据库连接不上?

我用的是新版的Visual Studio 2008,数据库用的是SQL Server 2008,我在用Connection连接数据库的时候,一直报错,不知道该怎么办才好?我的连接语句是:SqlConnection con = new SqlConnection();

        con.ConnectionString = " server=127.0.0.1;uid=;pwd=;database=master";

        con.Open();//打开数据库

        Label1.Text = "数据库连接对象成功创建,并且已经打开";

        con.Close();//关闭数据库

我的sql server 用的是windows 身份验证模式,以前用的sqlserver 2005还可以连接上,但是换了sql 2008就连接不上了?
 

方法一:

把你的验证模式改了,换成用户模式或集成、用户混合模式
 

方法二:

把你的连接字符串改了,用集成方式连接

string conStr = "Data Source=SQLServer2005;Initial Catalog=master;Integrated Security=True";//连接字符串

2. vs2005和sql2008不能连接数据库吗?

可以,在工具箱中,找到sqldatasource控件,添加到页面中,配制一个就可以了,不用写代码的


http://zhidao.baidu.com/question/158164407.html?fr=qrl&cid=869&index=1&fr2=query

3. NET Compact Framework下SQL CE兼容性问题

    在vs2005下开发默认使用CF.net的版本为2.0,同时默认使用的SQL CE版本是3.0。一般在以下目录 C:\Program Files\Microsoft Visual Studio 8\SmartDevices\SDK\SQL Server\Mobile\v3.0或者C:\Program Files\Microsoft SQL Server 2005 Mobile Edition\Device\Mobile\v3.0。
 

    在vs2008下开发默认使用CF.net的版本为3.5,但是可以选择2.0,同时默认使用的SQL CE版本是3.5。一般存放在C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Devices\。
 

    sdf数据文件和System.Data.SqlServerCe.dll是一对一绑定,3.5的sdf数据文件只能用3.5的SqlServerCe.dll,3.0的sdf数据文件只能用3.0的SqlServerCe.dll的,彼此互不兼容。
 

     如果使用3.0的SqlServerCe.dll访问3.5的sdf数据文件会有以下异常

4. Windows CE下能够使用数据库吗?

答:可以。在Windows CE下主要应用的几种数据库有EDB, SQL CE, sqlite(一种开源的数据库)。其中EDB是一种小型的非关系型的数据库,如果数据量比较少,可以考虑使用EDB,操作起来相对简单。SQL CE是关系型数据库,适用于发杂一些的数据存储。

5. Windows CE下可以使用ACCESS数据库吗?

Windows CE 5.0下没有ACCESS数据库,所以不能够直接使用。如果非要使用,需要将ACCESS和SQL CE间进行数据的转换。具体的内容需要在网上查些资料,实现起来麻烦。                                                                                                                                                                                                                                                                                                                                                                                                                                                                    

6. WinCE与PC机的USB同步蓝屏解决方法

WIN XP SP3,笔记本电脑(主要还不清楚是否有那些硬件不兼容)

安装 USB下载驱动正常,但启动CE后,连接USB线到电脑无法自动安装驱动,使用提供的CE连接驱动安装完成即电脑系统蓝屏,

若USB线一直连接电脑,电脑重启直接蓝屏。

 

经过多次实验后,最终解决:

 

1.先连接电脑,并安装驱动,蓝屏后关机,然后拔掉USB线启动进入系统,将 INF目录下的wceusbsh.inf,wceusbsh.PNF删除,将system32\drivers\wceusbsh.sys删除

2. 不用重启,连接USB线,同步工具将会显示连接。

7. eWin一体机(Wince)软件加密的一种方法

途径: 

一体机在出厂时,会在系统中烧录一个序列号,每台机器的序列号都不相同且不可修改。这就提供了一种软件简单加密的途径。可以在程序启动之初,通过函数读取机器序列号并与给定之序列号做比较。如不相同,说明你的程序被拿到了其他的机器上运行,可以考虑将程序终止。 
 

参考: 

下面是这种方法的一个简单的参考。 

① 首先列出该参考程序中用到的一些变量,句柄,数组,宏定义等。 

HANDLE hDriver; // 保存加载驱动所返回的句柄 

#define IMEI_LENGTH 16 // 序列号的长度为16个字节 

#define IOCTL_HAL_GET_IMEI 2 // DeviceIoControl函数的一个参数 

Const unsigned char IMEI[IMEI_LENGTH] = 

{'f', 'e', 'd', 'c', 'b', 'a', '9', '8', '7', '6', '5', '4', '3', '2', '1', '0'}; // 本台机器在出厂时烧录的序列号,程序中就是读取本台机器序列号,与之作比较 

unsigned char TempIMEI[IMEI_LENGTH]; // 作为程序中所读取的序列号的缓冲区 

DWORD rlRuturn; // 作为DeviceIoControl的一个参数 

int i; // 用于下面的for循环 

② 加载相关驱动 

hDriver = CreateFile(TEXT("GID1:"), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 

NULL); 

if (hDriver == INVALID_HANDLE_VALUE) 

AfxMessageBox(TEXT("Cannot open driver")); 

③ 读取机器序列号,所读取的数据存储在上面声明的缓冲区数组TempIMEI中。 

DeviceIoControl(hDriver, IOCTL_HAL_GET_IMEI,NULL, 0, 

TempIMEI, IMEI_LENGTH, &rlRuturn, NULL); 

④ 将程序所读取的序列号与(说明书中提供的)本台机器的序列号做比较,如果不相同,说明你为本台机器所开发的程序被拿到了其他机器上运行。此时可以考虑终止程序。 

for(i=0; i<IMEI_LENGTH; i++) 

if(TempIMEI[i] != IMEI[i]) 

AfxMessageBox(TEXT("IMEI ERROR!!!")); 

// 在此处考虑终止程序的运行 

}

收缩
  • 产品热线

    010-82684395
  • 孙工
  • 张工