主题:[原创]【求助】如何在C#中将文本文件导入到Access中..在线等
marcoyu
[专家分:0] 发布于 2006-07-25 10:13:00
具体情况如下:
需要将一个文本文件(也有可能不是文本文件,但是其中的数据是简单的数字)中的数据导入到Access数据库中。例如文本文件中有以下数据:
120 300 200
231 674 356
如何将之导入到一个Access数据库中呢?
我在网上查到在VBA中可以使用docmd.TransferText函数实现此功能,但是在C#中我还没有找到类似的函数,请各位高手帮忙,指点一下迷津,谢谢。
回复列表 (共2个回复)
板凳
purana [专家分:440] 发布于 2006-07-27 11:50:00
txtImport.txt文件內容如下
120,300,200
231,674,356
private void button1_Click(object sender, System.EventArgs e)
{
string connectionString;
connectionString="Server=purana;DataBase=test;Integrated Security=SSPI";
SqlConnection conn;
StreamReader infile=File.OpenText(@"D:\CSharp\txtImport.txt");
try
{
conn=new SqlConnection(connectionString);
conn.Open();
try
{
SqlCommand insertCommand = new SqlCommand();
insertCommand.Connection=conn;
insertCommand.CommandText="Insert Into test_table(ID,name,password) Values(@ID,@name,@password)";
insertCommand.Parameters.Add(new SqlParameter("@ID",SqlDbType.Char,10));
insertCommand.Parameters.Add(new SqlParameter("@name",SqlDbType.Char,10));
insertCommand.Parameters.Add(new SqlParameter("@password",SqlDbType.Char,10));
while(infile.Peek() > -1)
{
string instr=infile.ReadLine();
string[] inData=instr.Split(',');
insertCommand.Parameters["@ID"].Value=inData[0];
insertCommand.Parameters["@name"].Value=inData[1];
insertCommand.Parameters["@password"].Value=inData[2];
insertCommand.ExecuteNonQuery();
}
MessageBox.Show("導入成功");
}
catch(Exception ex)
{
MessageBox.Show("無法打開"+ex.Message );
}
finally
{
if(conn!=null)
conn.Close();
}
}
catch
{
MessageBox.Show("無法連接");
}
}
我来回复