اشتراکها
نظرات مطالب
گرفتن خروجی XML از جداول در SQL Server 2012
- میتونی با کدنویسی اینکار رو انجام بدی:
var reportData = new DataSet(); reportData.ReadXml("yourfile.xml"); var connection = new SqlConnection("DB ConnectionSTring"); var sbc = new SqlBulkCopy(connection); sbc.DestinationTableName = "yourXMLTable";
- و یا از OPENXML میشه استفاده کرد:
INSERT Customers SELECT * FROM OPENXML ...
اثبات این مدعا هم که مشکل از SQL Server نیست ساده است (فیلد با collation عربی ایجاد شده و ی فارسی در آن ثبت شده است و سپس گزارشگیری):
DECLARE @tbl AS TABLE (f1 NVARCHAR(50) COLLATE Arabic_CI_AS NULL)
INSERT INTO @tbl(f1) VALUES(NCHAR(1740))
SELECT * FROM @tbl
DECLARE @tbl AS TABLE (f1 NVARCHAR(50) COLLATE Arabic_CI_AS NULL)
INSERT INTO @tbl(f1) VALUES(NCHAR(1740))
SELECT * FROM @tbl
نظرات مطالب
Url Routing در ASP.Net WebForms
سلام برای خوندن اطلاعات از کوئری استرینگ باید چطور دستور سلکت رو نوشت من وقتی از روش بالایی که گفتم استفاده میکردم میگفتم که مقدار id رو بخون از کوئری استرینگ الان نوشتم where newsid=@pi
بعدم تو sqlدیتا سورس گفتم از کوئری استرینگ مقدار piرو بخون ولی ارور میده الان بگم چی رو بخون
بعدم تو sqlدیتا سورس گفتم از کوئری استرینگ مقدار piرو بخون ولی ارور میده الان بگم چی رو بخون
فرض کنید یک دیتابیس آزمایشی دارید که میخواهید تمام رکوردهای آنرا حذف کنید. اگر در این دیتابیس انواع و اقسام کلیدهای خارجی و تریگر و امثال آن وجود داشته باشند، صرفا با یک دستور delete ساده کار به پایان نمیرسد و موفق به حذف رکوردها نخواهید شد (چون این قید و بندها به همین جهت طراحی شدهاند تا یکپارچگی دیتابیس حفظ شود).
اما اگر واقعا این قیود در این لحظه مهم نبودند و نیاز بود تا تمام رکوردها را حذف کنیم، سریعترین راه حل موجود چیست؟
--Disable Constraints & Triggers
exec sp_MSforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
exec sp_MSforeachtable 'ALTER TABLE ? DISABLE TRIGGER ALL'
--Perform delete operation on all table for cleanup
exec sp_MSforeachtable 'DELETE ?'
--Enable Constraints & Triggers again
exec sp_MSforeachtable 'ALTER TABLE ? CHECK CONSTRAINT ALL'
exec sp_MSforeachtable 'ALTER TABLE ? ENABLE TRIGGER ALL'
--Reset Identity on tables with identity column
exec sp_MSforeachtable 'IF OBJECTPROPERTY(OBJECT_ID(''?''), ''TableHasIdentity'') = 1 BEGIN DBCC CHECKIDENT (''?'',RESEED,0) END'
اسکریپت فوق تمامی رکوردهای دیتابیس جاری را حذف کرده و همچنین فیلدهای identity را نیز مجددا به حالت اول باز میگرداند.
توضیحات:
sp_Msforeachtable یکی از رویههای ذخیره شدهی سیستمی اس کیوال سرور میباشد که مستند نشده است. اگر نیاز داشتید کدی را بدون نوشتن یک کرسر و امثال آن، بر روی تمامی جداول اجرا کنید میتوان از آن استفاده نمود.
امضای این رویه ذخیره شده به صورت زیر است:
exec @RETURN_VALUE=sp_MSforeachtable @command1, @replacechar, @command2,
@command3, @whereand, @precommand, @postcommand
که در آن:
RETURN_VALUE مقدار بازگشتی است.
Command1 اولین دستوری است که اجرا خواهد شد (به همین ترتیب سپس Command2 و بعد از آن Command3 اجرا خواهد گردید)
Replacechar کاراکتری است که در دستور T-SQL مورد نظر جایگزین نام جدول خواهد شد. مقدار پیش فرض آن ? است.
Precommand پیش از پردازش عملیات روی هر جدولی اجرا میشود.
Postcommand پس از اجرای کلیه دستورات روی تمامی جداول، اجرا خواهد شد.
چند مثال:
نمایش تمامی جداول دیتابیس جاری
EXEC sp_MSforeachtable "print '?'"
EXEC sp_msforeachtable 'sp_spaceused ''?'''
دانلود پروژه فروشگاه اینترنتی با معماری سه لایه
این پروژه به کمک امکانات شیرین C#.NET, ASP.NET,jQuery در محیط Visual Studio 2010 طراحی و پیاده سازی شده است.ممکن است در این برنامه به اشکالاتی برخورد کنید چون یک پروژه کاری بوده که در طی یک کلاس درس تکمیل شده و هم اکنون در اختیار شما قرار میگیرد لطفا در صورت بروز مشکل از طریق بازخورد مطرح فرمایید و از ارسال پیام خصوصی خودداری نمایید.
پروژه با معماری سه لایه طراحی و پیاده سازی شده است
که شامل لایه DAL برای ارتباط با بانک
BLL برای اعمال قوانین تجاری
و لایه نمایش آن که ASP.NET استفاده شده است
بانک اطلاعاتی برنامه با SQL SERVER 2008 میباشد که میتوانید آن را تغییر داده و از بانک اطلاعاتی دلخواه خود استفاده کنید.
فایل اسکریپت نیز در کنار پروژه برای نسخههای دیگر SQL قرار گرفته است.
لازم به ذکر است که برنامه ProviderBase نیز میباشد.
یعنی شما میتوانید بانک دلخواه خود را استفاده نموده و بدون کوچکترین تغییری در برنامه سایت از آن استفاده نمایید فقط کافی است که در فایل web.config مشخصات آن Provider را ثبت نموده و کدهای مربوط به Provider خود را بنویسید.
برای استفاده ابتدا دیتابیس را در SQL خود Attach کرده و در فایل web.config در قسمت تنظیمات ConnectionString تنظیمات سرور و نام دیتابیس را وارد نمایید.
این پروژه دارای امکانات
- فروشگاه اینترنتی با قابلیت گروه بندی محصولات
- ذخیره تصاویر در دیتابیس و بازیابی با یک Handler
- سرویس اعلانات سایت
- درج کلمات کلیدی هر صفحه به صورت اتوماتیک و با توجه به محتوای صفحه
- استفاده از قابلیت Profile برای کاربران
- کارت خرید و ذخیره آن در پروفایل کاربر
- ثبت سوابق خرید کاربر
- ثبت فیشهای پرداختی کاربر
- ثبت نام کاربران جدید در سایت
- ثبت، نمایش و مدیریت سخنان قصار در نرم افزار
- امکان Cache کردن اطلاعات دریافتی از بانک و مدیریت Cache
- پیاده سازی تمامی کویریهای بان با Store Procedure در SQL Server
- استفاده از سرویس Membership
- خواندن تنظیمات برنامه از فایل Web.Config و معادلسازی آن با کلاسهای مربوطه
- و ...
در صورت لزوم میتوانید به لینک اصلی این پروژه در آدرس سایت ما مراجعه نمایید.
نام کاربری و کلمه عبور مدیریت سایت:
UserName: Admin Password: 1234567@ ---------- UserName: Saber_Fatholahi Password: 1234567@
نظرات مطالب
اعتبارسنجی سرویس های WCF
سلام
من از certificate استفاده کرده ام برای پروژه ام در حالت لوکال مشکلی ندارم ولی وقتی که آپلود میکنم خطای
cannot find the X.509 certificate using the following search criteria
میده حالا من چطور میتونم certificate رو سرور تنظیم کنم؟یا اینکه ایجاد کنم؟
من با کمک این لینک برای لوکال ست کردم و مشکلی نداره اما سرور نمیدونم
http://www.codeproject.com/Articles/96028/WCF-Service-with-custom-username-password-authenti#h-5
من از certificate استفاده کرده ام برای پروژه ام در حالت لوکال مشکلی ندارم ولی وقتی که آپلود میکنم خطای
cannot find the X.509 certificate using the following search criteria
میده حالا من چطور میتونم certificate رو سرور تنظیم کنم؟یا اینکه ایجاد کنم؟
من با کمک این لینک برای لوکال ست کردم و مشکلی نداره اما سرور نمیدونم
http://www.codeproject.com/Articles/96028/WCF-Service-with-custom-username-password-authenti#h-5
امروز در یک تالار سوالی مطرح شد با این عنوان "چگونه میتوانم گرههای برگ یک شاخه را بدست بیاورم". خب راه حلی که فورا به ذهنم رسید استفاده از یک query بازگشتی (recursive) بود.
به ساختار سلسله مراتبی زیر توجه بفرمایید:
و حالا به درخت زیر توجه بفرمایید:
هدف پیدا کردن برگ هایی از شاخه مورد نظر است که در پایینترین سطح قرار گرفته باشند. برای این منظور از همان query بازگشتی استفاده کرده و با کمک تابع dense_ranke گرههای مورد نظر را بدست میاوریم.
به ساختار سلسله مراتبی زیر توجه بفرمایید:
گره هایی که با رنگ سبز علامت گذاری شده اند را گرههای برگ مینامیم چون که آن گرهها بدون زیر شاخه هستند.
فرض کنید از ما خواسته شده است با داشتن گره A تمام برگهای این شاخه را بدست بیاوریم.
دو مرحله را باید طی کنیم ابتدا تمام گره هایی که زیر شاخه گره A هستند را باید بدست آورد سپس توسط یک گزاره گرههای برگ را فیلتر کنیم.
در واقع گره هایی برگ هستند که پدر هیچ گرهی دیگری نباشند.
declare @t table (id char(1) primary key, parent char(1)); insert @t values ('A',null), --Level 1 ('B', 'A'), ('C', 'A'), --Level 2 ('D', 'B'), ('E', 'B'),('R','B'), ('F', 'C'), --Level 3 ('G', 'D'), --Level 4 ('H', 'G'), ('I', 'G'); --Level 5
;with cte as ( select id, rnk=0 from @t where parent = 'A' union all select t.id, rnk+1 from cte join @t t on cte.id = t.parent ) select * from cte where not exists (select * from @t where parent = cte.id);
و حالا به درخت زیر توجه بفرمایید:
هدف پیدا کردن برگ هایی از شاخه مورد نظر است که در پایینترین سطح قرار گرفته باشند. برای این منظور از همان query بازگشتی استفاده کرده و با کمک تابع dense_ranke گرههای مورد نظر را بدست میاوریم.
;with cte as ( select id, rnk=0 from @t where parent = 'A' union all select t.id, rnk+1 from cte join @t t on cte.id = t.parent ) select * from ( select *, dense_rank() over(order by rnk desc) rk from cte )t where rk = 1
Lifting State Up ای که در اینجا توضیح داده شد، راه حل رسمی و کلاسیک خود React است. اما با پیچیدهتر شدن برنامه برای مدیریت حالت از کتابخانههای ثالثی مانند Redux و Mobx هم میتوان استفاده کرد.
نظرات مطالب
طراحی پایگاه داده چند زبانه
روش دوم واقعا روش تمیز و جمع و جوریه اما کوئری هاش واقعا پیچیده اس و انعطاف نداره. به نظر من مخصوصا برای استفاده از EF روش سوم روش مناسبتری باشه. این کوئریها رو با توجه به حجم داده زیاد و سایت پرترافیک بررسی کنید.
خودم بین روش دو و سه مرددم. از دوستان میخوام نظراتشون را با دلائل بیان کنن تا به نتیجه خوبی برسیم