PDA

View Full Version : خواندن فایلهای dbf در برنامه و نمایش آنها در دیتا گرید



ozzy_mra
یک شنبه 28 آذر 1389, 14:05 عصر
سلام
دوستان عزیز من این سوال رو هم قبلاً مطرح کرده بودم ولی جوابی نگرفتم
کسانی که برنامه های تحت FoxPro رو دیده باشند ، برنامه با فایلهایی با پسوند DBF کار می کنه که همانند تیبل های sql server دارای فیلد و نوع فیلد هست که در واقع قبل از اینکه اکسس و sql بیاد با این برنامه جداول را در این فایلها پیاده می کردند
حالا من یک سری فایل اکسس دارم که باید اونا رو به همین قالب برگردونم خود اکسس به قالب DBF اکسپورت میکنه ولی این فایل DBF فایل قابل استفاده در FoxPro نیست و باید یه سری اعمال روی فیلد های این فایل انجام بشه
حالا سوال من اینه که اینکار رو باید چجوری انجام بدم اصلاً میشه این فایل رو با ساختارش بخونم و توی یه دیتا ست یا دیتا تیبل بریزم و کارایی رو که می خوام روش انجام بدم؟؟:عصبانی++:

ijavad
یک شنبه 28 آذر 1389, 16:11 عصر
اگه بخواید به قالب فاکس تبدیل کنید باید مقادیر فیلد هاتون رو تبدیل به انکدینگ ایران سیستم کنید برای این کار dll های زیادی هست

ozzy_mra
دوشنبه 29 آذر 1389, 08:14 صبح
اگه بخواید به قالب فاکس تبدیل کنید باید مقادیر فیلد هاتون رو تبدیل به انکدینگ ایران سیستم کنید برای این کار dll های زیادی هست
ُسلام
ممکنه که بیشتر توضیح بدید و روش کارو بهم بگید؟

ijavad
دوشنبه 29 آذر 1389, 15:21 عصر
من از این dll استفاده کردم:
https://rapidshare.com/files/438356576/Win2Dos_v1004.rar
امیدوارم به دردتون بخوره
شما فیلدها رو تک تک خوانده و تبدیل به ایران سیستم میکنید. اگه بخواید از dbf فیلدها رو بخونید وتبدیل کنید به روش زیر میتونید این کار را انجام دهید(البته این فقط برای تبدیل هست و شما خودت برای خواندن فیلدها کدش را بنویسید. شبیه همین است):

System.Data.Odbc.OdbcConnection oCon1 = new System.Data.Odbc.OdbcConnection();
oConn1.ConnectionString = @"Driver={Microsoft dBase Driver (*.dbf)};SourceType=DBF;SourceDB=masir\dbf_file.db f;Exclusive=No; Collate=Machine;NULL=NO;DELETED=NO;BACKGROUNDFETCH =NO;";
oCon1.Open();
System.Data.Odbc.OdbcCommand oCmd1 = oConn1.CreateCommand();
ClsWin2Dos convert1 = new ClsWin2Dos();
oCmd1.CommandText = @"update masir\dbf_file.dbf set fld1="+ convert1.Win2Dos(fld_value);
oCmd1.ExecuteNonQuery();
oCon1.Close();
امیدوارم تونسته باشم کمکی کرده باشم موفق باشید

ozzy_mra
سه شنبه 30 آذر 1389, 08:00 صبح
من از این dll استفاده کردم:
https://rapidshare.com/files/438356576/Win2Dos_v1004.rar
امیدوارم به دردتون بخوره
شما فیلدها رو تک تک خوانده و تبدیل به ایران سیستم میکنید. اگه بخواید از dbf فیلدها رو بخونید وتبدیل کنید به روش زیر میتونید این کار را انجام دهید(البته این فقط برای تبدیل هست و شما خودت برای خواندن فیلدها کدش را بنویسید. شبیه همین است):

System.Data.Odbc.OdbcConnection oCon1 = new System.Data.Odbc.OdbcConnection();
oConn1.ConnectionString = @"Driver={Microsoft dBase Driver (*.dbf)};SourceType=DBF;SourceDB=masir\dbf_file.db f;Exclusive=No; Collate=Machine;NULL=NO;DELETED=NO;BACKGROUNDFETCH =NO;";
oCon1.Open();
System.Data.Odbc.OdbcCommand oCmd1 = oConn1.CreateCommand();
ClsWin2Dos convert1 = new ClsWin2Dos();
oCmd1.CommandText = @"update masir\dbf_file.dbf set fld1="+ convert1.Win2Dos(fld_value);
oCmd1.ExecuteNonQuery();
oCon1.Close();
امیدوارم تونسته باشم کمکی کرده باشم موفق باشید

سلام
خیلی ممنون، برای خوندن فیلد های فایلم باید تو commandText دستور سلکت فاکسی بنویسم؟

ozzy_mra
سه شنبه 30 آذر 1389, 08:24 صبح
دوست عزیز این dll به رفرنسام اد نمیشه پیغام زیرو میده ، در ضمن جای fld_value چی باید بزارم؟
منظورتون اینه که کل فایل رو بخونم و در یه دیتا تیبل بریزم و در یه حلقه for کارایی که شما فرمودید رو انجام بدم؟

ijavad
سه شنبه 30 آذر 1389, 09:11 صبح
برای اضافه کردن dll باید ابتدا اونو از طریق راست کلیک روی toolbox و انتخاب choose items و از قسمت com components اضافه کنید وبعد از طریق add references فایل Dll رو انتخاب کنید و بعد اینو اضافه کنید:
using Win2DosDll;

منظور از fld_value مقدار فیلدی است که خوانده شده حال شما میتوانید تمام فیلدهای یک رکورد را خوانده و سپس آن را با دستور update تبدیل کنید.توی مثالی که براتون نوشتم من فقط یک فیلد را تبدیل کردم. در ضمن شما از تمام دستورات sql میتوانید استفاده کنید(insert,update,select,delete,...)
موفق باشید

ozzy_mra
سه شنبه 30 آذر 1389, 11:48 صبح
[QUOTE=ijavad;1176660]برای اضافه کردن dll باید ابتدا اونو از طریق راست کلیک روی toolbox و انتخاب choose items و از قسمت com components اضافه کنید وبعد از طریق add references فایل Dll رو انتخاب کنید و بعد اینو اضافه کنید:
using Win2DosDll;

می دونم دوست عزیز ، فایل dll ظاهراً ایراد داشت تو نت سرچ کردم پیداش کردم. ممنونم