PDA

View Full Version : سوال: ذخیره اطلاعات یک جدول و بازیابی آن در xml با ef



علی فتحی
یک شنبه 12 بهمن 1393, 14:31 عصر
سلام.ببخشید خیلی جستجوکردم به نتیجه نرسیدم .اجبارا تاپیک ایجاد کردم.
دوستان ما یک برنامه داریم روی دوتا سیستم نصب شده و تحت شبکه نیست.میخوام اطلاعات جدول انبار رو که انباردار وارد میکنه در یک فایلی ذخیره کنم (حالا پیشنهاد دوستان هر چی باشه txtیاxml)
با یک فلش اطلاعات همون جدول رو بازیابی و ثبت کنم .
اگر نمونه کوچک سورس بزارین ممنون میشم

علی فتحی
یک شنبه 12 بهمن 1393, 16:49 عصر
لطفا اگر جواب و بلد نیستین هر کسی جوابشو سراغ داره تاپیک رو بگذارین . خیلی عجله دارم

علی فتحی
جمعه 17 بهمن 1393, 14:13 عصر
لطفا جواب دهید از استادان حرفه ای خواهشمندم خیلی لازمه برای برنامه های کاربردی

علی فتحی
شنبه 18 بهمن 1393, 21:58 عصر
الو مدیران محترم سایت فکر کنم کسی جوابو بلد نیست لطفا اگر امکان داره این سوالو به تاپیکی که ربط داره پاس دهید. جستجو کردم چیز خاصی پیدا نکردم

خاطر نشان میکنم این روش در برنامه سیترا بخوبی طراحی شده اطلاعات دیتاگرید رو ذخیره و بازیابی میکنه.

khokhan
شنبه 18 بهمن 1393, 22:16 عصر
الو مدیران محترم سایت فکر کنم کسی جوابو بلد نیست لطفا اگر امکان داره این سوالو به تاپیکی که ربط داره پاس دهید. جستجو کردم چیز خاصی پیدا نکردم

خاطر نشان میکنم این روش در برنامه سیترا بخوبی طراحی شده اطلاعات دیتاگرید رو ذخیره و بازیابی میکنه.


private static void TableToXml()

{

try

{

string ConString = ConfigurationManager.ConnectionStrings["ConString"].ConnectionString;

string CmdString = "SELECT EmployeeID, LastName, FirstName, Title, TitleOfCourtesy, BirthDate, HireDate, Address City, Region, PostalCode, Country, HomePhone, Extension, Notes, ReportsTo, PhotoPath FROM Employees";



SqlConnection con;

SqlCommand cmd;

SqlDataAdapter sda;

DataTable dt;



using (con = new SqlConnection(ConString))

{

cmd = new SqlCommand(CmdString, con);



con.Open();

dt = new DataTable("Employees");

sda = new SqlDataAdapter(cmd);

sda.Fill(dt);

dt.WriteXml("Employees.xml");

con.Close();

}

}

catch (Exception)

{

throw;

}

}

khokhan
شنبه 18 بهمن 1393, 22:19 عصر
وقتی هم می خوای اطلاعات رو از xml داخل sql بریزی :


private void button1_Click(object sender, EventArgs e)
{
string connetionString = null;
SqlConnection connection;
SqlCommand command ;
SqlDataAdapter adpter = new SqlDataAdapter();
DataSet ds = new DataSet();
XmlReader xmlFile ;
string sql = null;

int product_ID = 0;
string Product_Name = null;
double product_Price = 0;

connetionString = "Data Source=servername;Initial Catalog=databsename;User ID=username;Password=password";

connection = new SqlConnection(connetionString);

xmlFile = XmlReader.Create("Product.xml", new XmlReaderSettings());
ds.ReadXml(xmlFile);
int i = 0;
connection.Open();
for (i = 0; i <= ds.Tables[0].Rows.Count - 1; i++)
{
product_ID = Convert.ToInt32(ds.Tables[0].Rows[i].ItemArray[0]);
Product_Name = ds.Tables[0].Rows[i].ItemArray[1].ToString();
product_Price = Convert.ToDouble(ds.Tables[0].Rows[i].ItemArray[2]);
sql = "insert into Product values(" + product_ID + ",'" + Product_Name + "'," + product_Price + ")";
command = new SqlCommand(sql, connection);
adpter.InsertCommand = command;
adpter.InsertCommand.ExecuteNonQuery();
}
connection.Close();
MessageBox.Show("Done .. ");
}

plus
شنبه 18 بهمن 1393, 22:19 عصر
با EF نمیدونم ولی با ADO.NET و استفاده از DataTable شاید بتونید:
میتونید اطلاعات جدول رو با استفاده از DataAdapter بخونید و در یک DataTable بریزید و بعد با استفاده از متد WriteXml (https://msdn.microsoft.com/en-us/library/x3zy2whb%28v=vs.110%29.aspx) اطلاعات جدول به یک فایل xml انتقال بدین. درسیستم مقصد میتونید برعکس این کار رو با متد ReadXml (https://msdn.microsoft.com/en-us/library/fs0z9zxd%28v=vs.110%29.aspx) انجام بدین و با استفاده از DataAdapter اطلاعات رو از DataTable به دیتابیس انتقال بدید.

aslan
شنبه 18 بهمن 1393, 23:26 عصر
سلام
لینک های زیر هم مفیدند :

http://www.codeproject.com/Articles/30705/C-CSV-Import-Export
http://www.codeproject.com/Articles/11435/Importing-CSV-Data-and-saving-it-in-database
https://msdn.microsoft.com/en-us/library/ms188365.aspx
http://blog.sqlauthority.com/2008/02/06/sql-server-import-csv-file-into-sql-server-using-bulk-insert-load-comma-delimited-file-into-sql-server/
http://www.morgantechspace.com/2014/03/Import-CSV-File-Into-SQL-Server-using-Bulk-Insert.html
...
درکل پیشنهادم اینه که در مورد bcp utility in sql و bulk insert جستحو و مطالعه کنید
موفق باشید