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

}

私が得るエラーは次のとおりです。

タイプ 'string' を 'char' に暗黙的に変換することはできません

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 に答える