using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;namespace 第2个mdf
{
    class Program
    {
        static void Main(string[] args)
        {
            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("DateDirectory",dataDir);
            }
            using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;
AttachDBFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True"))
            {
                conn.Open();
                using (SqlCommand cmd=conn.CreateCommand())
                {
                   cmd.CommandText = "Insert into Table1(Name) values('abc')";
                   cmd.ExecuteNonQuery();
                    Console.WriteLine("插入数据成功");
                }
           }
            Console.WriteLine("打开数据库成功");
            Console.ReadKey();
                
       }
    }
}
=======================我是分割线==============================
以上是全部代码,控制台打印屏幕也都显示成功 然后进入vs2010里左边打开table1,右键执行sql  不能显示插入的数据。
高手解

解决方案 »

  1.   

    注释一下:我的vs2010,sql2008  而且都装在D盘,应该跟盘符没关系的吧!
      

  2.   

    Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "");
    单步是否执行
    附加数据库
      

  3.   


    同样求解答,我也是。visual 2008,sql 2005
      

  4.   

    cmd.CommandText = "select happened from T_test where happened='"+username+"'";
    reader.Read();
    我也是一样有数据可reader.Read()的反回值是false
      

  5.   

    有可能是目录太长了.我遇到过这种情况.如下
    加入
    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("DataDirectory", dataDir);
                }是很好的解决方案
    学习过程中发现目录过长的时候,上面加入的代码失效了.折腾一下午才弄好;发出来给大家,避免出现同样的情况
    当时设定的目录是"G:\2012重要软件\学习编程中自己写的实例\visual studio 2010\projects\第一个mdf\第二个mdf\bin\debug"
    然后运行上面的代码,无论如何设置,dataDir都是等于上面的目录.无法去掉最后的\bin\debug
    后来在g盘根目录建立个projects文件夹,在里面写项目.上面代码就生效了.我用的是vs2010
      

  6.   

    VS2010-工具-连接到数据库-浏览-创建项目的目录下的mdf,就可以了,我是这么解决的。