.dat 파일에는 파일 크기가 245kb 인 바이너리 데이터가 들어 있습니다. 따라서 총 2 진수는 2 백만입니다.더 빠른 방법은 비트 배열을 foreach하고 비트 숫자를 데이터베이스에 삽입합니다.
이진수로 읽고 데이터베이스에 이진수를 저장해야합니다. 여기 내가 한 것 :
byte[] data = File.ReadAllBytes(dat_file);
BitArray bits = new BitArray(data);
int id_card = 1;
for (int i = 0; i < bits.Length; i++)
{
if (stop)
{
break;
}
//Insert to database
save_to_database(Convert.ToInt16(bits[i]),id_card);
id_card++;
double perc = (double)i/ (double)bits.Length;
this.btnSubmit.Invoke(new MethodInvoker(delegate { btnSubmit.Text = perc.ToString("P"); }));
}
그러나 문제는 비트 배열을 foreach하여 데이터베이스에 저장할 때 매우 오랜 시간이 걸립니다. 착각하지 않으면 600k에 도달하는 데 약 1 시간이 걸렸습니다.
어떤 아이디어로 문제를 해결할 수 있습니까? 나는 5 개 이상의 파일을 바이너리로 읽고 데이터베이스에 저장해야한다.
매 반복마다 버튼 텍스트를 정말로 업데이트해야합니까? 아니면 디버깅 목적으로 그렇게 했습니까? –
@JimMischel, 디버깅 목적으로 만 사용 – Chuki2
왜이 데이터를 저장 비트로 분할하려고합니까? –