الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سوال عن البحث في كل الموقع بكل الجداول

بدأه السيد الهاشمي في 4 يونيو 2011 · 4 رد · 359 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

اعضاء ومشرفين المنتدى .. عندي مشكلة في زر بحث للموقع كلة وعندي اكثر من جدول في الموقع وحابب ابحث باستخدام جملة Like

واريد ان اخزن النتايج في قرد فيو ... يعني لو اي شخص حاول البحث في الموقع عن اي شي موجود في الموقع ينعرض له النتائج في قرد فيو .. وحابب يكون البحث في كل الجداول

كيف اعمل هذه الكود ياليت الي عندة خبرة بهذا الكود مايبخل علينا فية .. بس مع العلم ان زر البحث بيكون في الصفحة الرئيسية ... وعرض النتائج في صفحة ثانية ... ماعرفت كيف احمل القيم من الصفحة الرئيسية وعرضها في صفحة ثانية

شباب الله يجزيكم كل الخير شوفو لي حل

#2

السلام عليكم ورحمه الله وبركاته

اخي موضوعك مكرر وهذا هو الموضوع الاصلي /index.php?showtopic=242956 انتظر الرد في موضوعك الاصلي!!

1

.:: Wish to become better and better ::.

#3
VB Helper كتب:

السلام عليكم ورحمه الله وبركاته

اخي موضوعك مكرر وهذا هو الموضوع الاصلي /index.php?showtopic=242956 انتظر الرد في موضوعك الاصلي!!

===============================

اخي العزيز ... انا مالقيت رد واضح لسوالي ياليت تشوف لي رد واضح لسوالي وشكراء

#4

السلام عليكم ورحمه الله وبركاته

اخي مو معناته لو مالاقيت رد تقوم بعمل موضوع مكرر!! المهم تلقى الرد من الاخوه في اقرب وقت ان شاء الله ..

تم تعديل هذه المشاركة بواسطة VB Helper في 5 يونيو 2011 في 10:02

.:: Wish to become better and better ::.

#5

بسم الله الرحمن الرحيم

اخى العزيز

ال procedure دى ممكن تخليك تبحث عن اى كلمة فى كل الجدول فى كل الحقول بل عن حرف فى كلمة فى مل الجدوال فى كل الحقول

create PROC SearchAllTables
(
	@SearchStr nvarchar(100)
)
AS
BEGIN
CREATE TABLE #Results (ColumnName nvarchar(370), ColumnValue nvarchar(3630))

	SET NOCOUNT ON

	DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128), @SearchStr2 nvarchar(110)
	SET  @TableName = ''
	SET @SearchStr2 = QUOTENAME('%' + @SearchStr + '%','''')

	WHILE @TableName IS NOT NULL
	BEGIN
		SET @ColumnName = ''
		SET @TableName = 
		(
			SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
			FROM 	INFORMATION_SCHEMA.TABLES
			WHERE 		TABLE_TYPE = 'BASE TABLE'
				AND	QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName
				AND	OBJECTPROPERTY(
						OBJECT_ID(
							QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)
							 ), 'IsMSShipped'
						       ) = 0
		)

		WHILE (@TableName IS NOT NULL) AND (@ColumnName IS NOT NULL)
		BEGIN
			SET @ColumnName =
			(
				SELECT MIN(QUOTENAME(COLUMN_NAME))
				FROM 	INFORMATION_SCHEMA.COLUMNS
				WHERE 		TABLE_SCHEMA	= PARSENAME(@TableName, 2)
					AND	TABLE_NAME	= PARSENAME(@TableName, 1)
					AND	DATA_TYPE IN ('char', 'varchar', 'nchar', 'nvarchar')
					AND	QUOTENAME(COLUMN_NAME) > @ColumnName
			)
	IF @ColumnName IS NOT NULL
			BEGIN
				INSERT INTO #Results
				EXEC
				(
					'SELECT ''' + @TableName + '.' + @ColumnName + ''', LEFT(' + @ColumnName + ', 3630) 
					FROM ' + @TableName + ' (NOLOCK) ' +
					' WHERE ' + @ColumnName + ' LIKE ' + @SearchStr2
				)
			END
		END	
	END

	SELECT ColumnName, ColumnValue FROM #Results
END

و بتنادى عليها كده

SearchAllTables'1'

حيث سوف يتم البحث عن رقم واحد فى كل الجدوال فى كل الحقول

جرب و رد على

اتمنى اكون افدتك

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…