如何通过调用过程将.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");
}
}
答案 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();
在表格中插入每条记录。