将.DAT文件导入数据库?

时间:2015-07-23 21:32:57

标签: c# sql database

如何通过调用过程将.DAT文件导入/插入数据库?

这是我的文件的样子,它必须以这种格式进入数据库。

50  4411902304  1   3   441192304   01/02/2013    

.DAT文件的进程与xml文件相同吗?

这就是我对xml的看法

            SqlConnection myConnection = new SqlConnection("user id=name;" +
                                   "password=password;server=servername;" +
                                   "Trusted_Connection=yes;" +
                                   "database=database; " +
                                   "connection timeout=30");

        var conn = new SqlConnection();
        conn.ConnectionString = "user id=idName;" +
                                   "password=password;" + "server=servername;" + "Trusted_Connection=yes;" + "database=databasename; " +  "connection timeout=30";


        string filePath = "C:/TestData2.xml";
        string xml = File.ReadAllText(filePath);
        using (SqlConnection con = new SqlConnection(conn.ConnectionString))
        {
            using (SqlCommand cmd = new SqlCommand("procedureName"))
            {
                cmd.Connection = con;
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@x", xml);
                con.Open();
                cmd.ExecuteNonQuery();
                con.Close();
                MessageBox.Show("done");
            }
        }

1 个答案:

答案 0 :(得分:0)

与旧的平面文件(DAT)相比,XML是一种新技术。 XML是一种标记格式文件,并且实现了一些功能以使导入任务更容易。 平面文件较旧,因此需要采用不同的方法。

您可以使用bcp(批量复制程序)将文件导入SQL Server或SSIS导入选项。

或者,您也可以使用:

System.IO.StreamReader file = new System.IO.StreamReader(@"c:\data\TestData2.dat");
int counter = 0;
while ((line = (file.ReadLine())) != null){...}

使用Split命令解析每一行。

string[] fields= line.Split(' ');

string a = fields[0]; string b = fields[1]; string c = fields[2];

然后执行命令以插入每一行:

string sqlCommandtoInsert= "INSERT INTO [Table] (Tablefield1, Tablefield2, Tablefield3) VALUES (" + a + ", " + b + ", '" + c + "');";

cmd.CommandText = sqlCommandtoInsert;

cmd.ExecuteNonQuery();

在表格中插入每条记录。