我开发一个winform应用程序,开发时将数据库附加到数据库管理工具中,连接语句如下:
 <add name="conn" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=hkxl.mgf;Integrated Security=True" />一切正常!开发完成后我将数据库hkxl放到目录App_data\下。并修改连接字符串为:  <add name="conn" connectionString=" Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\App_Data\hkxl.mdf;Integrated Security=True;User Instance=True" />程序运行正常,没有连接不上数据库的问题。并且添加删除修改时均在dataGridView上显示数据的成功变化。
可是实际上数据库并没有更新!
我晕到。。
 

解决方案 »

  1.   

    基类层代码:
    public int RunSql(string sql, SqlParameter[] prams)
            {
                int result;
                SqlCommand cmd = CreateCommandSql(sql, prams);
                result=cmd.ExecuteNonQuery();
                this.Close();
                return result;
            }
    都是通过ExecuteNonQuery()方式直接操作数据库的。--------------------------------------
    奇怪的是我在调试的时候可以看到语句的执行,也可以看到返回值为1(执行完一条SQL语句之后)
    但是到数据库里看并没有看到数据更新。二楼的数据库文件的操作权限,要如何设置?谢谢
      

  2.   

    没遇到过这样的问题,关注...
    可能如2楼所说的数据库操作权限问题
    要设置其权限:
    1.选择“安全性”/“登录”
    2.右击你的登录用户,选择“属性”,再选“数据库访问”页
    3.勾选所要访问的数据库,在下面的角色分配里勾选权限,一般选public、db_datareader、db_datawriter,就可以了
      

  3.   

    没遇到过这样的问题,关注...
    可能如2楼所说的数据库操作权限问题
    要设置其权限:
    1.选择“安全性”/“登录”
    2.右击你的登录用户,选择“属性”,再选“数据库访问”页
    3.勾选所要访问的数据库,在下面的角色分配里勾选权限,一般选public、db_datareader、db_datawriter,就可以了
      

  4.   

    问题解决了!不过还是很晕。<add name="conn" connectionString=" Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\App_Data\hkxl.mdf;Integrated Security=True;User Instance=True" /> 
    这个字符串所包含的DataDirectory 是说的:应用程序文件夹\bin\debug\App_Data而不是:应用程序文件夹\App_Data但是不能理解的是我的数据库放在应用程序文件夹\App_Data\居然连接都没有问题。现在将数据库放到 应用程序文件夹\bin\debug\App_Data下,问题解决了。
    谢谢各位