我用C#做的Winform程序,在本机上可以运行,但是到了没有装SqlServer的机子上就不能运行了,要想做在任何机子上都可以运行的数据库程序时不是必须用mdb,还是有什么好的办法,改Access挺麻烦的原来的sql语句根本用不了,传参数也麻烦。
如:select Top(@size) id, name
不知道怎么改成access可以用的啊,select Top ? id, name 也不行,必须要确定的数字才行,难道要去拼出sql语句才行吗

解决方案 »

  1.   

    看看这个帖子:http://topic.csdn.net/u/20090913/12/618beff3-328a-4412-a608-d95c04872671.html
      

  2.   

    倒,难道没有Sqlserver服务器么?
    或者,楼主听说过Webservice没有?
    改成Access?!不带这么玩的
      

  3.   

    这个问题我遇到过,主要是注意下面几点:
    sql连接数据库字符串 可以参考一下这个:
     con = new SqlConnection("Data Source=192.168.1.99;DataBase=Nothwind;User ID=sa;PWD=sa");
    Data Source=192.168.1.99 要指向 数据库服务器的IP地址;
    把数据库的身份验证模式改为混合模式,并设置密码;
    服务器端注意防火墙设置,其中很重要一点是允许 TCP/IP的 1433端口,如果不会设就把防火墙关了先;
    鼠标右键点项目属性 ,选发布选项。具体如何发布可看下MSDN
      

  4.   

    楼主,MDB数据库经常会发生数据库损坏的情况,当你发现MDB文件共享模式的弊端时,你又怎么改代码呢?局域网内装一个SQL服务器就行了。
      

  5.   

    SQL Serve本身是网络型数据库。你只需要把你程序的数据库连接字符串改动一下就OK了。
    象你所说的改为access,真不带这么玩的
      

  6.   

    sql语句函数,大部分access中都没有
      

  7.   

    使用sql server express 
    或安装msde
    否则就要安装
      

  8.   

    后台 数据库SqlServer,那么就必须客户端就必须安装。
    或者向上面的兄弟说的,做个SqlServer服务器出来,客户端都去连接它。
      

  9.   

    SQL2000安装MSDE
    SQLServer2005/2008安装Express
      

  10.   

    sqlexpress本身可以运行于网络服务器模式下.也可以运行于文件访问模式下.后者更为简单.
    打包安装程序时,在系统必备之中将sqlexpress打包进去就可以了.反而是服务器模式要复杂一些.建议应用sqlexpress数据库来做程序,不仅是单机与网络它都适用,而且一旦需要,可以无缝升级到其它性能更好的版本.
      

  11.   

    你要是单机程序,通过网络访问数据库这个方法就PASS了。你不想安装,应用SQL Server这条也PASS了。你还有下面两个选择:
    PS:从我发给你参考的帖子引用过来的。
      

  12.   

    sqlite和mssql差异还是很大的。
      

  13.   

    SQL Compact 3.5 好像不支持很多函数,不然我早用了,我换成SQL Compact 3.5后报错,不支持TOP
    还有其它的函数
      

  14.   

    改成acess真的不必要,webservice可以考虑考虑
      

  15.   

    我想用remotesoft 发布我的程序让它在任何地方都可以运行,可不可以把数据库也一起发布在一起啊
      

  16.   

    把aspnetdb.mdf数据库的脚本导出来, 在虚拟主机上执行一下以创建表\视图\存储过程等.
      

  17.   

    要通用,唯一办法,自己拼SQL,而且只能拼最基本的SQL,这样才能所有数据库通杀
      

  18.   

    以往都是那么做的,可以和原程序打包在一起,写脚本的时候把MSDE一起做为程序安装
      

  19.   

    装一个  SQL服务器就完事了。
      

  20.   

    换sql语句
    用webservice
    装sqlite