使用c将文本文件导入到SQL Server数据库#
问题描述:
我有一些来自某些考勤设备的文本文件。该文件是这样的如下:使用c将文本文件导入到SQL Server数据库#
010:0007739166:20120908:071009:BLANK !!:11
010:0013646521:20120908:073125:BLANK !!:11
010:0010840695:20120908:073129:BLANK !!:11
010:0005546931:20120908:073131:BLANK !!:11
010:0013656129:20120908:073136:BLANK !!:11
010:0010827749:20120908:073222:BLANK !!:11
010:0009668536:20120908:073251:BLANK !!:11
010:0009673161:20120908:073410:BLANK !!:11
我需要插入到我的SQL Server数据库使用C#应用程序。我正在使用的代码是:
string[] alllines = File.ReadAllLines(txtFilePath.Text);
for (int i = 1; i < alllines.Length; i++)
{
OdbcConnection conn = new OdbcConnection(connstring);
conn.Open();
OdbcCommand cmd = new OdbcCommand();
cmd.Connection = conn;
string[] items = alllines[i].Split(new char[] { ":" });
string cardno = items[1];
string date = items[2];
string time = items[3];
string datetime = date + " " + time;
cmd.CommandText = "insert into tbl_card values('" + cardno + "','" + date + "','" + DateTime.Parse(datetime) + "','Entry','" + System.DateTime.Now.ToString() + "')";
cmd.CommandType = CommandType.Text;
OdbcDataReader dr = cmd.ExecuteReader();
conn.Dispose();
}
我得到的错误是:
无法隐式转换为“字符”
答
型“字符串”是什么文件格式?它是制表符/空格分隔吗?如果是的话,您可以创建一个到文件的OleDb连接并将其读入您的读取器/数据集对象。
话虽如此,文件有多大?对于较大的文件和.Net 4.0或更高版本,我建议使用流并使用TPL进行并行插入。
答
答案很简单。但如果您在提问时发布了代码和例外情况,那会更好。
看到这个代码new char[] { ":" }
从而导致该异常并更改
string[] items = alllines[i].Split(new char[] { ":" });
到
string[] items = alllines[i].Split(new char[] { ':' });
这是所有。
+0
或者如果你拼命想分割一个字符串做.Split(new [] {“:”},StringSplitOptions.None); – Loofer 2013-04-22 21:35:07
如果您收到一条错误消息,请将其发布?或张贴你试过的东西。 – RandomUs1r 2013-04-22 17:41:17
你可以用bcp导入。 'myfile.txt中的bcp.exe mydb..mytable -S服务器-T -t:'。 bcp.exe附带了SQL Server客户端工具,或者您可以从http://www.microsoft.com/en-us/download/details.aspx?id=29065 – 2013-04-22 17:44:38
下载SqlCmdlnUtils.msi'我如何将这些数据导入到我的数据库使用C#。“你的问题在哪里?在阅读和解析文本文件或将它们插入到数据库? – I4V 2013-04-22 18:59:40