-1

我有一些考勤设备的文本文件。该文件如下所示:

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

我需要使用 c# 应用程序将它们插入到我的 SQL Server 数据库中。我正在使用的代码是:

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();

}

我得到的错误是:

无法将类型“字符串”隐式转换为“字符”

4

2 回答 2

1

答案很简单。但是,如果您在提问时发布了代码和异常,那就更好了。

new char[] { ":" }请参阅导致异常和更改的此代码

string[] items = alllines[i].Split(new char[] { ":" });

string[] items = alllines[i].Split(new char[] { ':' });

就这些。

于 2013-04-22T21:09:40.633 回答
-2

文件的格式是什么?它是制表符/空格分隔的吗?如果是,您可以创建与文件的 OleDb 连接并将其读入您的阅读器/数据集对象。

话虽如此,文件可以有多大?对于较大的文件和 .Net 4.0 或更高版本,我建议使用流并使用 TPL 进行并行插入。

于 2013-04-22T17:43:10.693 回答