黑马程序员技术交流社区

标题: ADO.NET 插入数据 [打印本页]

作者: 王超洋    时间: 2012-5-21 01:39
标题: ADO.NET 插入数据
本帖最后由 王超洋 于 2012-5-21 01:46 编辑

我按照视频上的为什么总是插入不了数据,表名字肯定没错,运行也显示插入成功,连接成功,就是打开表什么数据也没有,调试了快一个小时还是不行,试了论坛上的方法也不行,求解啊。。。
              Console.WriteLine("请输入用户名");
              string name = Console.ReadLine();
              Console.WriteLine("请输入密码");
              string password = Console.ReadLine();
              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 person(name,password) values ('"+name+"','"+password+"')";
                      cmd.ExecuteNonQuery();
                      Console.WriteLine("插入成功");
                  }
              }
              Console.WriteLine("打开数据库连接成功");
              Console.ReadKey();
作者: 班顶超    时间: 2012-5-21 09:24
好像看不出什么错,这样的话就下断点啊。下了看看就知道了。
要不就是你写了前面的那那段代码了吗,老师在教程里说过,如果不加的话是看不到的。sting datadir=…………什么的。 如果真是插入成功,你用SQL查询,查询下不要直接打开表试试。
作者: 朱亮辉    时间: 2012-5-21 10:02
你的代码都没有什么问题,都能成功的执行,你测试过没测试过你的链接字符串啊,你的链接字符串存在错误,已经替你测试过了,正确的代码贴给你,链接字符串的用户名和密码自己修改吧!

            Console.WriteLine("请输入姓名");
            string name = Console.ReadLine();
            Console.WriteLine("请输入年龄");
            string age = Console.ReadLine();
            using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=Database1;User ID=sa;PassWord=123456"))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = "Insert INTO Test VALUES('" + name + "','" + age + "','" + DateTime.Now + "')";
                    cmd.ExecuteNonQuery();
                    Console.WriteLine("插入成功");
                }
            }
            Console.WriteLine("打开数据库连接成功");
            Console.ReadKey();
作者: 班顶超    时间: 2012-5-21 10:17
楼上的连接字符串不就是省略了列名吗 看不出有什么区别
作者: 王超洋    时间: 2012-5-21 10:21
班顶超 发表于 2012-5-21 09:24
好像看不出什么错,这样的话就下断点啊。下了看看就知道了。
要不就是你写了前面的那那段代码了吗,老师在 ...

都试过了 那段代码也写了,还是不行。。。
            string dateDir = AppDomain.CurrentDomain.BaseDirectory;
            if (dateDir.EndsWith(@"\bin\Debug\") || dateDir.EndsWith(@"\bin\Release\"))
            {
                  dateDir = System.IO.Directory.GetParent(dateDir).Parent.Parent.FullName;
                  AppDomain.CurrentDomain.SetData("DateDirectory",dateDir);
            }
作者: 班顶超    时间: 2012-5-21 11:39
这问题很严重啊 我就复制你的代码 后 结果和你一样 搞不出来,我也调试了2小时了。版主敢出来帮他调试吗
作者: 许庭洲    时间: 2012-5-21 12:52
这可能是数据库内用户表字段ID属性没有设置,也就是自增ID 的处理,希望对你有帮助。
作者: 班顶超    时间: 2012-5-21 13:07
真正原因已经找到 string dateDir = AppDomain.CurrentDomain.BaseDirectory;
            if (dateDir.EndsWith(@"\bin\Debug\") || dateDir.EndsWith(@"\bin\Release\"))
            {
                  dateDir = System.IO.Directory.GetParent(dateDir).Parent.Parent.FullName;
                  AppDomain.CurrentDomain.SetData("DateDirectory",dateDir);
            }


string dateDir = AppDomain.CurrentDomain.BaseDirectory;
            if (dateDir.EndsWith(@"\bin\Debug\") || dateDir.EndsWith(@"\bin\Releasel\"))
            {
                  dateDir = System.IO.Directory.GetParent(dateDir).Parent.Parent.FullName;
                  AppDomain.CurrentDomain.SetData("DateDirectory",dateDir);
            }
作者: 喻健    时间: 2012-5-21 22:20
班顶超 发表于 2012-5-21 13:07
真正原因已经找到 string dateDir = AppDomain.CurrentDomain.BaseDirectory;
            if (dateDir.End ...

红色标注的是什么意思?我刚刚也是出现了这个问题。看不明白你这个红色标记的意思。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2