A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李拴同 中级黑马   /  2013-1-3 17:29  /  2113 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

代码都是按着视频一步一步来的 在运行时出现以下问题  麻烦大家仔细看看
未处理 System.Data.SqlClient.SqlException
Message=尝试为文件 H:\2010网站\手机归属地查询\手机归属地查询\bin\Phone.mdf 附加自动命名的数据库,但失败。已存在同名的数据库,或指定的文件无法打开或位于 UNC 共享目录中。
我在应用程序主入口点 中输入这样代码
目前还不知道这行代码什么意思 按着视频来的
string dataDir = AppDomain.CurrentDomain.BaseDirectory;
            if (dataDir.EndsWith(@"\bin\Debug\")
                || dataDir.EndsWith(@"\bin\Relese\"))
            {
                dataDir = System.IO.Directory.GetParent(dataDir).Parent.FullName;
                AppDomain.CurrentDomain.SetData("DataDirectory", dataDir);

            }

以为是这段代码错的去掉后就会运行但插入不到数据库内容程序就死掉了
程序如下:
namespace 手机归属地查询
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnimport_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog dlg = new FolderBrowserDialog();//判断用户是否点Ok
            if (dlg.ShowDialog() != DialogResult.OK)
            {
                return;

            }
            string path = dlg.SelectedPath; //选择用户路径

            string connstr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;//获取配置文件中的链接字符串

            using (SqlConnection conn = new SqlConnection(connstr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())//不知道为什么要清楚一下,表里没有数据吧
                {
                    cmd.CommandText = "delete from T_Numbers";
                    cmd.ExecuteNonQuery();
                }
            }

            string[] files = Directory.GetFiles(path, "*.txt", SearchOption.AllDirectories);//扫面TXT文件
            using (SqlConnection conn = new SqlConnection(connstr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = "insert into T_Numbers(StarNo,EndNo,Name)values(@StarNo,@EndNo,@Name)";
                    foreach (string file in files)//这里有点不理解了
                    {
                        string 运行商名称 = Path.GetFileNameWithoutExtension(file);
                        string[] lines = File.ReadAllLines(file, Encoding.Default);
                        foreach (string line in lines)
                        {
                            string[] strs = line.Split('-');
                            string 开始号码 = strs[0];
                            string 结束号码 = strs[1];
                            string 市 = strs[2];

                            cmd.Parameters.Clear();//清楚Parameters
                            cmd.Parameters.Add(new SqlParameter("StarNo", 开始号码));
                            cmd.Parameters.Add(new SqlParameter("EndNo", 结束号码));
                            cmd.Parameters.Add(new SqlParameter("Name", 运行商名称 + 市));
                            cmd.ExecuteNonQuery();


                        }
                    }
                }
                MessageBox.Show("导入成功");

            }
        }
    }
}


1 个回复

倒序浏览
最开始 在 Main函数开始的时候 有一句有问题 dataDir = System.IO.Directory.GetParent(dataDir).Parent.FullName;
应该是   dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;
有两个 Parent
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马