c#无法更新sqlce3.5的问题

情况说明:个人编写的一个小程序,主要用来登记单位人员各类杂费报销,vs2008C#,因为功能比较单一,使用sqlce3.5嵌入式开发。设计了一个登陆窗口,用于验证登录用户... 情况说明:
个人编写的一个小程序,主要用来登记单位人员各类杂费报销,vs2008 C#,因为功能比较单一,使用sqlce3.5嵌入式开发。
设计了一个登陆窗口,用于验证登录用户的权限,在sqlce中有个表sysconfig,里面有两个字段,cfg_name和cfg_values,用于系统需要的部分参数,其中有个决定是否自动登录的参数,cfg_name=loginornot,设想在cfg_values=login时跳过登陆窗口(通过progam.cs判断,已经实现),默认是cfg_values=not。如果需要自动登录,选择checkBox,update 那个cfg_values=login。
程序运行后(vs里面调试),选中checkBox,下次运行能够自动跳过登陆窗口,按理说此时cfg_values应该是login,可是在vs2008服务器资源管理器中显示sysconfig表的内容,发现cfg_values仍旧是not,并且,一旦你运行了服务器资源管理器察看了sysconfig的数据后,再次运行程序又变成需要登陆的状态(因为cfg_values=not了)。
简而言之,我的代码仿佛只是在内存中更改了cfg_values的值似的。
选中checkBox后更新参数的语句如下:
if (logincheckBox.Checked)
{
string ckupdasql = "UPDATE sysconfig SET cfg_values = N'login' WHERE (sysconfig.cfg_name = 'loginornot')";
SqlCeCommand ckupdacommand = new SqlCeCommand();
ckupdacommand.Connection = myconn;
ckupdacommand.CommandText = ckupdasql;
ckupdacommand.ExecuteNonQuery();
}
希望高手能给看一看,还是我的语句少了一步什么。那句update语句是服务器资源管理器自动生成的,单纯测试这条语句通过。
补充一下,数据库用的是Microsoft SQL Server Compact Edition 3.5 sp1,用过得就知道在vs里面有自己的类,就是在命令里面多了个ce,比如SqlCeCommand,而不是SqlConmand。还有就是用在pc机上面的,单纯作为一个数据库使用,总不至于为了这个小程序还安装Sql Server 2008 Express。
还有myconn的定义是在if语句之外,已经打开。
展开
 我来答
ld3135134162
2009-02-05 · TA获得超过1062个赞
知道小有建树答主
回答量:547
采纳率:0%
帮助的人:672万
展开全部
首先问下,是做的手机开发吧?智能手机那种,是的话再往下看,不是的话就可能不对了,首先,如果代码没有错的话,我问下,就是
UPDATE sysconfig SET cfg_values = N'login' WHERE
怎么'login' 前面还有个N,是怎么回事?
言归正传,楼主的问题我原来也遇到过,其实并不是代码的事情,而是你每次运行的时候都得部署到智能设备不是,也就是你每次部署的时候都把你更改后的手机数据库给还原了,不知道这样说你能明白不?解决的话不要部署数据库,而是使用手机本身的数据库,这样就不怕部署的时候还原成你VS里面开始设计的数据库了,应该明白了吧~~~

我也补充一句:如果没有Microsoft SQL Server Compact Edition 3.5 或更高版本,就是你需要的话,你还就得安装2008···还有,这个好像是在VS2008里面吧,记不清了···
百度网友f2081ce
2009-02-04 · TA获得超过198个赞
知道小有建树答主
回答量:249
采纳率:0%
帮助的人:213万
展开全部
if (logincheckBox.Checked==true)
{
}
还有我觉得应该是SqlCommand
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式