لطفا در مورد اینکه چه جوری می شود اطلاعات یک فایل DBF رو در برنامه ای به زبان #C خواند و داخل SQL ذخیره کرد مرا راهنمایی کنید.
لطفا در مورد اینکه چه جوری می شود اطلاعات یک فایل DBF رو در برنامه ای به زبان #C خواند و داخل SQL ذخیره کرد مرا راهنمایی کنید.
خود sqlserver قابلیت ایمپورت از اکثریت دیتابیس اینجنین ها را دارد (وهمچنین dbf را)
ولی درضمن می تونید جدول dbf خود را بصورت خروجی sql (دستورات sql) تعریف کنید و اون فایل را در sqlserver اجرا نمایید.
یه برنامه ای در بخش فاکس قبلا گذاشته ام که قابلیت تبدیل اطلاعات از جداول مختلف به یکدیگر را دارد (من جمله قابلیت خواندن جدول dbf و تهیه خروجی sql )
نهایتا می تونید درصورت نیاز فایل خروجی sql را مطابق میل (بصورت یک فایل تکست) خود تغییر دهید. و سپس در sqlserver فراخوانی کنید
دوستان عزیز من برای Import کردن در SQL مشکل ندارم و با SQL اینکار رو انجام میدم ولی من می خوام بوسیله خود برنامه که به زبان #C است این کارو کنم تا خود برنامه فایل DBF رو بخونه و در دیتابیس ما که SQL است ذخیره کنه
در ضمن اون کامپوننت که دوست عزیزمون لینکش رو برام گذاشته بود نصب نمیشه و یک Error میده که تصویرش بپیوست هست.
untitled.jpg
وقتی کاری رو میشه به صورت استاندارد انجام داد، چرا کامپوننت؟
کانکشن استرینگ برای دیتابیس فاکس پرو و هم خانواده آن:
"Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq="+dbf_path
و استفاده از :
OdbcConnection
مابقی کار هم مانند کار با سایر دیتابیسها (برای مثال SqlConnection و امثال آن) است.
وقتی کاری رو میشه به صورت استاندارد انجام داد، چرا کامپوننت؟
کانکشن استرینگ برای دیتابیس فاکس پرو و هم خانواده آن:
"Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq="+dbf_path
میشه کمی بیشتر در مورد استفاده کردن از این کانکشن استرینگ توضیح دهید ؛ ممنون میشم
dbf_path مسیر "دایرکتوری" فایل dbf است.
برای خواندن اطلاعات از dbf هم کافی است در دستور select بجای نام جدول، نام کامل فایل dbf را قرار دهید.
مابقی کار مانند سایر کدهای ADO.NET ایی است که تابحال نوشته اید. فقط بجای قسمت Sql در اسم اشیاء اینجا قرار گرفته Odbc .
سلام
خوب من هم دو سه روز پیش خواستم تا از طریق خود SQL Server تبدیل رو انجام بدم . منتهی پیغام خطا داد و خواست که ODBC Driver برای فایل های DBF نصب بشه و بعد . خلاصه نتونستم .
لطفاً اگر ممکنه روش تبدیل و ریختن اطلاعات فایل DBF به بانک SQL رو هم توضیح بدید .
تشکر
نوشته شده توسط Happy_davood
از این لینک میتونی Provider فاکس پرو رو دانلود کنی
http://msdn.microsoft.com/vfoxpro/do...s/default.aspx
خوب من فایل vfpoledb رو داون کردم و نصب هم شد . منتهی مشکل اینجاست که من از بین گزینه های مختلفی که در پنجزه Import وجود داره دقیقاً نمی دونم باید کدام ها رو انتخاب کنم .
حتی سعی کردم DNS هم ایجاد کنم ولی متاسفانه نتونستم .
ضمناً فایل من DBF تحت داس هست .
لطفاً روش کار رو هم توضیح بدید .
تشکر
سلام
من چند وقت پیش یه برنامه مجانی در قسمت آگهی های همین سایت گرفتم که این کار را به درستی انجام می ده لینکش درست یادم نیست سرچ کن حتما پیداش می کنی .
نوشته شده توسط anubis_ir
من نتونستم این کارو تو برنامه پیاده سازی کنم ، یه نمونه برنامه که به این روش نوشته شده باشه رو میشه برام بزارین یا یک متن که کاملتر توضیح داده باشه ، ممنون میشم
من کارایی که گفتید رو انجام دادم ولی این errorرو میده:
An unhandled exception of type 'System.Data.Odbc.OdbcException' occurred in System.Data.dll
Additional information: ERROR [42S02] [Microsoft][ODBC dBase Driver] The Microsoft Jet database engine could not find the object 'ABSPersonel.dbf'. Make sure the object exists and that you spell its name and the path name correctly.
نگید که مسیر یااسم فایلم اشتباهه،چون مطمئنم که درسته.
کدی کهنوشتماینه:
OdbcConnection odbccon = newOdbcConnection("Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=c:\\path");
OdbcCommand odbccom = newOdbcCommand("select * from ABSPersonel.dbf",odbccon);
OdbcDataReader rdr;
odbccon.Open();
rdr = odbccom.ExecuteReader ();
textBox1.Text = rdr.ToString();
odbccon.Close();
using System.Data.Odbc;
using System.IO;
public SqlConnection sql_connection = new SqlConnection("Data Source=(local);Initial Catalog=database_name;" + "Integrated Security=SSPI;Connection Timeout=0");
OdbcConnection oConn = new OdbcConnection();
oConn.ConnectionString = @"Driver={Microsoft dBase Driver (*.dbf)};SourceType=DBF;SourceDB=pathforDFBfile;Ex clusive=No; Collate=Machine;NULL=NO;DELETED=NO;BACKGROUNDFETCH =NO;";
oConn.Open();
OdbcCommand oCmd = oConn.CreateCommand();
oCmd.CommandText = @"SELECT * FROM dbf_file.dbf";
DataTable dt = new DataTable();
dt.Load(oCmd.ExecuteReader());
oConn.Close();
long[] temp;
int count = dt.Columns.Count;
foreach (DataRow dr in dt.Rows)
{
temp = new long[count];
for (int i = 0; i < count; i++)
{
temp[i] = Convert.ToInt64(dr.ItemArray[i]);
}
sql_connection.Open();
com = new SqlCommand("Insert Into " + nametable + "(" + namefilds + ")VALUES(" + VALUES + ")", sql_connection);
com.CommandTimeout = 0;
com.ExecuteNonQuery();
sql_connection.Close();
}
MessageBox.Show("Data inserted successfully");
به بخش فاکس پرو مراجعه کن اولین پست اونو مطالعه کن
در تندیس های تخت جمشید هیچ کس در حال تعظیم نیست ، هیچ کس عصبانی نیست ، هیچ کس سرافکنده و شکست خورده نیست ، هیچ کس سوار بر اسب نیست ، هیچ قومی بر قوم دیگر برتر نیست ، هیچ کس برده نیست و هیچ تصویر خشنی دیده نمیشود.
************************************************** ******************************************
اندیشه کن , آنگاه سخن گو تا از لغزش بر کنار باشی