首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

安插数据库 不报错 但也没有数据

2013-04-20 
插入数据库 不报错 但也没有数据C#代码:using Systemusing System.Collections.Genericusing System.Com

插入数据库 不报错 但也没有数据
C#代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Configuration;
using System.IO;

namespace 手机归属地导入查询
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog dlg = new FolderBrowserDialog();
            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_PhoneInfo";
                    cmd.ExecuteNonQuery();
                }
            }


            string[] files = Directory.GetFiles(path, "*.txt", SearchOption.AllDirectories);

            using (SqlConnection conn = new SqlConnection(connStr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = "Insert into T_PhoneInfo(sEndNo,sName,sStartNo) values(@sEndNo,@sName,@sStartNo)";



                    foreach (string file in files)//遍历文件名
                    {
                        string 运营商名称 = Path.GetFileNameWithoutExtension(file);
                        //不用StreamReader,因为文件很小,
                        string[] lines = File.ReadAllLines(file, Encoding.Default);
                        //一次性加载,也不占多少内存,ReadAllLines默认编码是UTF-8

                        foreach (string line in lines)
                        {
                            string[] strs = line.Split('-');
                            string 开始号码 = strs[0];
                            string 结束号码 = strs[1];
                            string 市 = strs[2];

                            cmd.Parameters.Clear();
                            cmd.Parameters.Add(new SqlParameter("sEndNo", 结束号码));
                            cmd.Parameters.Add(new SqlParameter("sName", 运营商名称 + 市));
                            cmd.Parameters.Add(new SqlParameter("sStartNo", 开始号码));

                            cmd.ExecuteNonQuery();
                            //int i;
                            //i = cmd.ExecuteNonQuery();
                            //MessageBox.Show(i.ToString());
                            //MessageBox.Show(运营商名称 + 市);


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



program.cs中已添加
string dataDir = AppDomain.CurrentDomain.BaseDirectory;
            if (dataDir.EndsWith(@"\bin\Debug")
                || dataDir.EndsWith(@"\bin\Release"))
            {
                dataDir = System.IO.Directory.GetParent(dataDir).Parent.FullName;
                AppDomain.CurrentDomain.SetData("DataDirectory", dataDir);
            }


配置文件已有:
<connectionStrings>
    <add  name="ConnStr"  connectionString="Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\phone.mdf;  
            Integrated Security=True;User Instance=True"/>
  </connectionStrings>


没有报错,各种调试和输出都没问题,就是插不进去数据库。求解
[解决办法]



String connStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
private void button1_Click(object sender, EventArgs e)
        {
 
            FolderBrowserDialog dlg = new FolderBrowserDialog();
            if (dlg.ShowDialog() != DialogResult.OK)
            {
                return;
            }
            string path = dlg.SelectedPath;
 
                        using (SqlConnection conn = new SqlConnection(connStr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = "delete from T_PhoneInfo";


                    cmd.ExecuteNonQuery();
                }
            }
 
 
            string[] files = Directory.GetFiles(path, "*.txt", SearchOption.AllDirectories);
 
            using (SqlConnection conn = new SqlConnection(connStr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = "Insert into T_PhoneInfo(sEndNo,sName,sStartNo) values(@sEndNo,@sName,@sStartNo)";
 
                    foreach (string file in files)//遍历文件名
                    {
                        string 运营商名称 = Path.GetFileNameWithoutExtension(file);
                        //不用StreamReader,因为文件很小,
                        string[] lines = File.ReadAllLines(file, Encoding.Default);
                        //一次性加载,也不占多少内存,ReadAllLines默认编码是UTF-8
 
                        foreach (string line in lines)
                        {
                            string[] strs = line.Split('-');
                            string 开始号码 = strs[0];
                            string 结束号码 = strs[1];
                            string 市 = strs[2];
                            InsertExecuteNonQuery(开始号码, 结束号码, 市);
                              //这里的不要了             


                       }
                    }
                }
            }
            MessageBox.Show("导入成功!");
        }
 
        public int InsertExecuteNonQuery(string sEndNo, string sName, string sStartNo)
        {
            string sqlString = "Insert into T_PhoneInfo(sEndNo,sName,sStartNo) values(@sEndNo,@sName,@sStartNo)";
            String connStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
             
            using (SqlConnection connetion = new SqlConnection(connStr))
            {
                connetion.Open();
                using (SqlCommand Command = new SqlCommand(sqlString, connetion))
                {
                    SqlParameter[] param = new SqlParameter[]
                                {
                                      new SqlParameter("@sEndNo", sEndNo),
                                      new SqlParameter("@sName", sName),
                                      new SqlParameter("@sStartNo", sStartNo)
  
                                };
                    Command.Parameters.AddRange(param);
                    return Command.ExecuteNonQuery();
                }
            }
        }


------解决方案--------------------


我也遇到过这个问题,把<add  name="ConnStr"  connectionString="Data Source=.\SQLEXPRESS;AttachDBFilename=
[解决办法]
DataDirectory
[解决办法]
\phone.mdf;  
            Integrated Security=True;User Instance=True"/>里路径AttachDBFilename改为绝对路径试下

热点排行