if (ofdImport.ShowDialog() == DialogResult.OK)
            {
                using (FileStream filestream = File.OpenRead(ofdImport.FileName))
                {
                    using (StreamReader streamreader = new StreamReader(filestream))
                    {
                        string line = null;
                        while ((line = streamreader.ReadLine()) != null)
                        {
                            string[] str = line.Split('|');
                            string name = str[0];
                            int age = Convert.ToInt32(str[1]);
                            using (SqlConnection conn = new SqlConnection(@"Data source=.\SQLEXPRESS; AttachDBFilename=|DataDirectory|\Database2.mdf;Integrated Security=true;User Instance=true"))
                            {
                                conn.Open();
                                using (SqlCommand cmd = conn.CreateCommand())
                                {
                                    cmd.CommandText = "insert into T_Persons (Name,Age) values(@Name,@Age)";
                                    cmd.Parameters.Add(new SqlParameter("Name", name));
                                    cmd.Parameters.Add(new SqlParameter("Age", age));
                                    cmd.ExecuteNonQuery();
                                }
                            }
                        }
                    }
                }
            }
为什么运行成功但是数据却无法插入表中呢

解决方案 »

  1.   

    打个断点在你的拼成的Insert语句上,拿到数据库上去执行一下看看能不能成功
      

  2.   

    insert 语句没有插入成功,自己断点检查检查。
      

  3.   

    将sql语句复制到sql数据库里执行,看是否能够插入数据库,如果能够,那说明是你的数据库连接执行插入语句这段有问题,感觉你这样子的访问形式很混乱!将插入数据这个方法应该要写在数据访问层,表示层就应直接调用方法就行,这样就会表现形式很清晰,也很容易排错!
    三层结构也要体现清楚呀!