السلام عليكم
اخواني انا عندي مشكلة ببرنامج يقرا من ملف تكست ويستخرج منها البيانات ويضعها بقاعدة البيانات
كانت عندي مشكلة باستخراج البيانات من ملف التكست وانتهيت منها الحمدالله باقي بس ارسل البيانات بعد الاستخراج لقاعدة البيانات
بعد ماكتبت الكود وحطيت امر EXECUTENONQUERY
لاحظة ان البرنامج قاعد يرسل البيانات لقاعدة البيانات لكن يكرر لي السطر الاول على عدد البيانات الموجوده يعني تكون مثلن عدد الصفوف 19 يكرر السطر الاول 19 مره بقاعدة البيانات
والشي اللي يقهر انو لمى استعرض البيانات في MESSAGEBOX يعطيني جميع البيانات سطر سطر وتكون صحيحه بس لمى ارسلها للداتا يكرر نفس السطر الاول على حسب عدد الصفوف
وضعة جملة executenonquery داخل الفور لووب وخارجها بس مافي فايده
ياليت الحل
الكود
string path = @"C:\Documents and Settings\Administrator\My Documents\MASTER.PRD120108.TXT";
StreamReader sr = new StreamReader(path);
string connection = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\Administrator\My Documents\testENV\InsertData\InsertData\aa\db1.mdb;Persist Security Info=True";
OleDbConnection con = new OleDbConnection(connection);
OleDbCommand com = new OleDbCommand();
com.Connection = con;
com.CommandText = "INSERT INTO mr (ORGX,ACCT,LOGO) VALUES (@ORGX,@ACCT,@LOGO)";
string lines = "";
string ORGX = "";
string ACCT = "";
string LOGO = "";
int count = 0;
string obj = "";
try
{
con.Open();
while ((lines = sr.ReadLine()) != null)
{
ORGX = lines.Substring(0, 3);
ACCT = lines.Substring(3, 19);
LOGO = lines.Substring(22, 3);
obj = ORGX + ACCT + LOGO;
count++;
ORGX = "";
ACCT = "";
LOGO = "";
string[] arr = obj.Split(new char[] {'\t'});
for (int i = 0; i < arr.Length; i++)
{
//arr = obj;
string x = arr.Substring(0, 3);
string y = arr.Substring(3, 19);
string k = arr.Substring(22,3);
com.Parameters.AddWithValue("@ORGX", x);
com.Parameters.AddWithValue("@ACCT", y);
com.Parameters.AddWithValue("@LOGO", k);
MessageBox.Show("The Variables of x " + x + " y " + y + " k " + k + " count " + count);
}
com.ExecuteNonQuery();
}
MessageBox.Show("you have " + count.ToString() + " rows");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}اتمنى الرد ياجماعه ضروري
واللي حاب يتأكد من مخرجات البرنامج بالـ MessageBox
يضع هذي الاسطر عنده بملف تكست ويحدد مكان ملف التكست من StreamReader
020
0004485091553487203
001
020
0004485091553487344
001
020
0004485091553487534
001
020
0004485091553487559
001
020
0004485091553487567
001
020
0004485091553488284
001
020
0004485091553488490
001
020
0004485091553488508
001
020
0004485091553488524
001
020
0004485091553488532
001
020
0004485091553488540
001
020
0004485091553488557
001
020
0004485091553488565
001
020
0004485091553488599
001
020
0004485091553488607
001
020
0004485091553488615
001
020
0004485091553488623
001
020
0004485091559991323
001
020
0004485097000001414
001
مشكورين واتمنى اني ما اكون اطلت عليكم