PDA

View Full Version : حرفه ای: نمایش نام فیلدها فایل xml و xls و sql در برنامه



Sal_64
شنبه 10 تیر 1391, 11:19 صبح
سلام

چطور میتونم در برنامم سه نوع فایل بالا بهش بدم و اون بتونه نام فیلدها برام نمایش بده

اگه نیازی به توضیح بیشتر بود - حتما بگید

تشکر :خجالت:

Saeed_m_Farid
شنبه 10 تیر 1391, 12:28 عصر
100% نیازی به توضیح بیشتر بود - حتما بگین
یعنی چی sql؟ اونیکی ها رو میشه با Linq to xml کد نوشت ولی این آخری چی هست؟ نمونه فرمت فایل رو دریغ نفرمائید لطفاً ...

Sal_64
یک شنبه 11 تیر 1391, 09:35 صبح
سلام و درود بر یگانه مرد بی ادعا (الان میگن قربون صدقه نرو) :لبخند:

فایل xml که مشخصه ، اطلاعات به صورت رکورد رکورد داخلش ذخیره میشه
فایل xls و sql در واقعه بانکهای داده هستن
که اول باید تیبل های موجود در اونها مشخص شه و در گام بعدی فیلدهای هر کدوم از تیبل ها

اگه بازم نیاز به توضیح داشت حتما بگین

تشکر

Saeed_m_Farid
دوشنبه 12 تیر 1391, 18:01 عصر
خوب وقتی می‌دونی چرا اینکار رو می‌کنی؟
_________________
فکر نمی‌کنم xls.* رو بشه فایل بانک اطلاعاتی گفت، مگه xls پسوند فایلهای اکسل نیست؟ اگه آره می‌تونید یا اضافه کردن COM مربوط به Excel Object استفاده کنید یا از OLEDB و کد زیر برای خوندن نام WorkSheet ها استفاده کنید:
/// <summary>
/// This mehtod retrieves the excel sheet names from
/// an excel workbook.
/// </summary>
/// <param name="excelFile">The excel file.</param>
/// <returns>String[]</returns>
private String[] GetExcelSheetNames(string excelFile)
{
OleDbConnection objConn = null;
System.Data.DataTable dt = null;

try
{
// Connection String. Change the excel file to the file you
// will search.
String connString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + excelFile + ";Extended Properties=Excel 8.0;";
// Create connection object by using the preceding connection string.
objConn = new OleDbConnection(connString);
// Open connection with the database.
objConn.Open();
// Get the data table containg the schema guid.
dt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables , null);

if(dt == null)
{
return null;
}

String[] excelSheets = new String[dt.Rows.Count];
int i = 0;

// Add the sheet name to the string array.
foreach(DataRow row in dt.Rows)
{
excelSheets[i] = row["TABLE_NAME"].ToString();
i++;
}

// Loop through all of the sheets if you want too...
for(int j=0; j < excelSheets.Length; j++)
{
// Query each excel sheet.
}

return excelSheets;
}
catch(Exception ex)
{
return null;
}
finally
{
// Clean up.
if(objConn != null)
{
objConn.Close();
objConn.Dispose();
}
if(dt != null)
{
dt.Dispose();
}
}
}
از اینجا (http://www.codeproject.com/Articles/8096/C-Retrieve-Excel-Workbook-Sheet-Names)

برای خوندن داده ها (مثلاً 10 رکورد از Worksheet اوّل) :
Excel.Workbook theWorkbook = ExcelObj.Workbooks.Open(
"MyExcelFilePath.xls", 0, true, 5,
"", "", true, Excel.XlPlatform.xlWindows, "\t", false, false,
0, true);
Excel.Sheets sheets = theWorkbook.Worksheets;
Excel.Worksheet worksheet = (Excel.Worksheet)sheets.get_Item(1);
for (int i = 1; i <= 10; i++)
{
Excel.Range range = worksheet.get_Range(
"A" + i.ToString(), "N" + i.ToString());
System.Array myvalues = (System.Array)range.Cells.Value;
string[] strArray = ConvertToStringArray(myvalues);
}

+=+=+=+=+=+=+=+=+=+=+=+=
برای خوندن فاین XML هم من از Linq to XML استفاده می‌کنم و نمونه اش رو اینجا گذاشتم :
افزودن یک Node در انتهای عنصر موردنظر XML (مربوط به Linq to XML) (http://barnamenevis.org/showthread.php?347921-%D8%A7%D9%81%D8%B2%D9%88%D8%AF%D9%86-%DB%8C%DA%A9-Node-%D8%AF%D8%B1-%D8%A7%D9%86%D8%AA%D9%87%D8%A7%DB%8C-%D8%B9%D9%86%D8%B5%D8%B1-%D9%85%D9%88%D8%B1%D8%AF%D9%86%D8%B8%D8%B1-XML-%28%D9%85%D8%B1%D8%A8%D9%88%D8%B7-%D8%A8%D9%87-Linq-to-XML%29)
+=+=+=+=+=+=+=+=+=+=+=+=
sql رو بازم نفهمیدم! در نهایت نمونه اون فایلها رو با یکی-دو تا داده آزمایشی اینجا بذارید تا بهتر بشه پاسخ داد...

Sal_64
سه شنبه 13 تیر 1391, 08:40 صبح
سلام
ی دنیا تشکر
فایل sql بهتر بود میگفتم mdf