سلام عليكم
هاه.. المشكلة كالتالي..عندي ملف أكسل واحد و عندي ملفات txt كثيرة، الأكسل يحتوى على أسم ملف txt و الاعمدة ماله ،
أنزين قدرت أقرء الأكسل و الملف txt
و قارن بأسم الملف التكست للي داخل الأكسل و عشان أطلع الداتا مالت التيكست
المشكلة عندي أني أبغي أخذ الداتا الموجودة في التكست فايل و أخليه في الأكسل
كل ما أحاول أخزن يطلع أخر عمود في التكست
مثلاً، داتا الموجود في التكست هي :
"Row Sequence Number","Abbas Ali",Mahmod. Ali",
أخزن بس في الأكسل Mahmod. Ali ثلاث مرات
ما يقوم بتخزين الأعمدة كلها أكرر مثل الصورة ،
أبغي أخزن الأعمدة كلها بدون تكرار للعمود
أن شاء لله تكون الفكرة واضح
هذا ا لكود
StreamReader objStreamReader = default(System.IO.StreamReader);
string lo = "C:/Documents and Settings/***/My Documents/**/Compering/New Folder";
DirectoryInfo di = new DirectoryInfo(lo);
FileInfo[] rgFiles = di.GetFiles("*.txt");
foreach (FileInfo fi in rgFiles)
{
objStreamReader = fi.OpenText();
string contents = objStreamReader.ReadLine();
string a = contents;
string[] strr = null;
char[] s = { ',' };
int c = 0;
strr = a.Split(s);
for (c = 0; c < strr.Length - 1; c++)
{
string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;" +
"Data Source=C:\\Documents and Settings\\***\\My Documents\\**\\**\\Compering\\Header.xlsx;" +
"Extended Properties=Excel 12.0;";
DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OleDb");
using (DbConnection connection = factory.CreateConnection())
{
connection.ConnectionString = connectionString;
using (DbCommand command = connection.CreateCommand())
{
command.CommandText = "UPDATE [HEADER$] SET COL_NAME_2='" + strr[c] + "'where DATA_FILE_NAME='" + fi.Name + "'";
connection.Open();
command.ExecuteNonQuery();
}
}
}
}