日期:2014-05-20  浏览次数:20688 次

.Net程序中操作数据库不起作用了
建立的C#Windows窗体应用程序,为一个按键响应消息写入如下代码:
              //打开数据库,并清除指定表中数据
            String connStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;

            using (SqlConnection conn = new SqlConnection(connStr))
            {
                conn.Open();//打开数据库

                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = "delete from Numbers";//清除表中的信息

                    cmd.ExecuteNonQuery();
                }
            }
其中的“ConnStr”来自配置文件:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
  </configSections>
  <connectionStrings>
    <add name="ConnStr"
      connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Phone2.mdf;
        Integrated Security=True;User Instance=True"/>
  </connectionStrings>
</configuration>

在程序主函数内添加:

//查找数据库地址
            string dataDir = AppDomain.CurrentDomain.BaseDirectory;
            if (dataDir.EndsWith(@"\bin\Debug\") || dataDir.EndsWith(@"\bin\Release\"))
            {
                dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;

                AppDomain.CurrentDomain.SetData("DataDirecrory", dataDir);
            }

运行无错误,可是运行结束之后数据库中的值仍然存在,(即执行的删除表中的数据没有起作用)
------解决方案--------------------
是不是把其它数据库的内容删掉了。bin\debug或者bin\release下的和项目跟目录下的数据库都看看。
------解决方案--------------------
是不是你每次编译覆盖了数据库文件。
------解决方案--------------------
设断点啊,总体上调试一下