PDA

View Full Version : ذخیره داده های فایل های excel متنوع در پایگاه داده



hasti.lm
دوشنبه 21 شهریور 1390, 14:33 عصر
با سلام
من در بخشی از سایتم باید امکان ذخیره فایل excel را به کاربر بدم. برای این کار از پایگاه داده زیر استفاده کردم.

75223

با توجه به شکل بالا حتی در صورت ندانستن ستونها ی فایل Excel می توان آن را ذخیره کرد. این کد در Local به خوبی اجرا می شود. اما پس از Upload سایت، برای فایلهای بالاتر از حدود 150 کیلو بایت( در حدود 350 سطر و 1 الی 10 ستون) پاسخگو نمی باشد زمانی که حجم فایل بیشتر از این مقادیر باشد. سرور Stop شده و پیغام زیر نمایش داده می شود

75225


پس از جستجو به این نتیجه رسیدم که به علت Connection های متوالی جهت قرار دادن مقادیر سلولها در پایگاه و استفاده بیش ازحد از منابع سرور این اتفاق می افتد. از آنجا که حجم فایلهای excel بسیار بیشتر از مقدار در نظر گرفته شده است. این روش اصلا پاسخگو نمی باشد .

ممنون میشم اگه منو در این زمینه راهنمایی کنید.
با تشکر فراوان

Saman Hashemi
دوشنبه 21 شهریور 1390, 14:48 عصر
مگه طراحي excel از نظر ساختار فرقي با جدول ميكنه؟اگه نه چرا اينجوري ذخيره ميكني
شما توي يه جدول مانند excel ذخيره كن فقط آخر هر سطر يه فيلد بذار ID نام فايل نگهداره كه مشخص بشه براي كدوم فايل يه جدولم داشته كه نام فايل نگهداره يعني tblExcelValue بايد حذف بشه...!

hasti.lm
دوشنبه 21 شهریور 1390, 14:59 عصر
چون قراره رو این داده ها عملیات انجام بشه مثلا جستجو. این داده ها حتما باید در پایگاه ذخیره بشه. یعنی کل فایل سطر به سطر باید ذخیره بشه. ولی چون فایلها با هم متفاوت بودن من از این روش استفاده کردم.

hasti.lm
دوشنبه 21 شهریور 1390, 15:04 عصر
فکر کنم بهتره یه مثال بزنم. مثلا ممکنه این فایلا برا اطلاعات مختلف مثل اطلاعات دانشجویان، اطلاعات نمرات، اطلاعات اساتید و ... باشند. به همین دلیل با توجه به تفاوت بیس جداول با هم این روش استفاده شده.

Saman Hashemi
دوشنبه 21 شهریور 1390, 15:13 عصر
بايد اين كار توي بانك انجام داد به اين صورت كه datatable ارسالش كنيد به يه Stored procedure بعد اونجا اين كار انجام بديد...!
شايد اين (http://stackoverflow.com/questions/1609115/pass-table-as-parameter-into-sql-server-udf)كمكت كنه...!

hasti.lm
دوشنبه 21 شهریور 1390, 15:21 عصر
منظورتون اینه که به ازای هر فایل excel تو پایگاه یه جدول بسازم بعد datatable رو به پایگاه ارسال کنم و insert رو سمت sql انجام بدم

Saman Hashemi
دوشنبه 21 شهریور 1390, 15:36 عصر
نه نيازي به ساختن جدول به ازاي هر فايل نيست...!
توي برنامه فايل excel ميخوني و درون يه DataTable قرار ميدي بعد DataTable به SQL ارسال ميكنيد و با استفاده از همون ساختار جدولي پست اولتون با استفاده از Stored procedure توي بانك درج ميكنيد...!

hasti.lm
دوشنبه 21 شهریور 1390, 15:43 عصر
چیزی که گفتی منطقیه. ولی این که سمت sql چه جوری رو datatable به صورت سطری حرکت کنی و هر سط رو هم سلول به سلول بخونی و ذخیره کنی یه مقدار پیچیده نیست؟

hasti.lm
سه شنبه 22 شهریور 1390, 08:27 صبح
سلام میشه بیشتر منو راهنمایی کنید؟