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

كيف الربط بsql Connection

بدأه dooody في 22 ديسمبر 2008 · 18 رد · 1,745 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

اريد تطبيق جمل ال

SQL connection

انا اريد عندما يضغط المستخدم على الزر تظهر اسماء كل الجداول في القاعدة في

list

لذلك احتاج الى المساعدة

سوف اذكر الخطوات التي ثمت بها واذا يوجد خطا اريد التصحيح منكم

اولا:قمت بانشاء موقع جديد

new web site

طبعا وضعت الزر و اداة القائمة

ثانيا : ثم ضغط دبل كليك على الزر ووضعت الكود التالي

SqlConnection myconn = new SqlConnection();

myconn.ConnectionString = "Data Source=localhost\\SQLEXPRESS;";

myconn.ConnectionString+="Initial Catalog=test;";

myconn.ConnectionString+="Integrated Security=True";

SqlCommand mycmd = new SqlCommand();

mycmd.Connection= myconn;

mycmd.CommandText=" SELECT * FROM [ INFORMATION_SCHEMA.TABLES]";

SqlDataReader myReader;

myconn.Open();

myReader=mycmd.ExecuteReader();

while(myReader.Read())

{DropDownList1.Items.Add(myReader[ "INFORMATION_SCHEMA.TABLES"].ToString());

}

myReader.Close();

myconn.Close();

طبعا المشكلة في جملة فتح الاتصال ولا اعرف حلها

طبعا انا استخدم

visual studio 2005

C#

وهل صحيح اسم الجدول الذي يحتوي على اسماء الجداول التي في القاعدة

INFORMATION_SCHEMA.TABLES؟

لذا ارجوا المساعدة

ولكم جزيل الشكر

#2

هذه الجلة :

SELECT * FROM [ INFORMATION_SCHEMA.TABLES]

عندما أنفذها فى SQL SERVER

يعطى خطأ

من أين أتيت بها !

لا إله إلا الله محمد رسول الله

アッラー以外に神はなし。ムハンマドはアッラーの使徒である

#3

هذا الكود يأتيك بأسماء الجداول الموجودة فى الداتابيز المفتوح عليها الإتصال

SELECT 
	[TableName] = so.name, 
	[RowCount] = MAX(si.rows) 
FROM 
	sysobjects so, 
	sysindexes si 
WHERE 
	so.xtype = 'U' 
	AND 
	si.id = OBJECT_ID(so.name) 
GROUP BY 
	so.name 
ORDER BY 
	2 DESC

لا إله إلا الله محمد رسول الله

アッラー以外に神はなし。ムハンマドはアッラーの使徒である

#4

العبارة التى إستخدمتها يجب أن تكون هكذا بدون هذه الأقواس [ ] حتى تعمل و لا تعطى خطأ

SELECT * FROM INFORMATION_SCHEMA.TABLES

و هذه الجملة أصلا لا تأتى بأسماء الجداول و لست أدرى كيف يتم إستخدامها بالضبط

لا إله إلا الله محمد رسول الله

アッラー以外に神はなし。ムハンマドはアッラーの使徒である

#5

أبشر

وجدت كود بسطر واحد فقط تحصل من خلاله على أسماء الجداول أو أى شئ تريده تقريبا من قاعدة البيانات المفتوح عليها الإتصال :

SELECT * FROM sysobjects WHERE type = 'U'

الsysobjects عبارة عن جدول يتم تخزين كل كائن تم إنشاءه بقاعدة البيانات

مثل الأتى

http://msdn.microsoft.com/en-us/library/ms177596.aspx

و تستطيع من خلال تحديد ال type أن تحصل على اسم الكائن الذى تريده

أنا لست خبير بالT-SQL و لكن صراحتا هذا الsys.sysobjects

عرفت منه أشياء جيدة

بالتوفيق

لا إله إلا الله محمد رسول الله

アッラー以外に神はなし。ムハンマドはアッラーの使徒である

#6

من الممكن أيضا أن يكون السطر السابق هكذا :

SELECT * FROM sysobjects WHERE sysobjects.xtype = 'U'

لا إله إلا الله محمد رسول الله

アッラー以外に神はなし。ムハンマドはアッラーの使徒である

#7

لكى تكون أكثر تحديد و تحصل على أسماء الجداول فقط بدون باقى الأشياء

SELECT sysobjects.name FROM sysobjects WHERE sysobjects.xtype = 'U'

لا إله إلا الله محمد رسول الله

アッラー以外に神はなし。ムハンマドはアッラーの使徒である

#8

سطر كود آخر للحصول على أسماء الجداول من view موجود فى الSQL إسمه INFORMATION_SCHEMA.TABLES

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME <> 'sysdiagrams'

و لقد قمت بإستثناء الsysdiagrams لكونه يأتى مع الأسماء و هذا أصلا جدول من صنع الSQL SERVER

لا إله إلا الله محمد رسول الله

アッラー以外に神はなし。ムハンマドはアッラーの使徒である

#9
اقتباس
[ INFORMATION_SCHEMA.TABLES]

عليك بازالة الفراغ الموجود قبل اسم الجدول

ويمكن ايضا استخدام sys.Tables بدل منها اي

SELECT * FROM sys.Tables

وبالنسبة للاتصال على الاغلب انه صحيح لكن عليك ان تتأكد من بياناتك انها صحيحة من اسم السيرفر وقاعدة البيانات وما الى ذلك وارجو ان تذكر الخطأ الذي يظهر معك

#10

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

على جهودكم للرد على موضوعيTareqVB اولا احب اشكر نور (محمد نور) و

ثانيا المشكلة انو ما بيعمل كونكشن هذه صورة للخطا الذي يظهر عند التشغيل

12zhp4zq.jpg

الذي المفترض يحتوي على اسم السيرفرData Sourceو اعتقد ان المشكلة في

وبما اني الاتصال على جهازي كيف اعرف اسم السيرفر الذي اعمل عليه؟

واخير لكم جزيل الشكر

#12

أخى بارك الله

هذا مثال بسيط على الConnectionString

Data Source=.;Initial Catalog=AdventureWorks;Integrated Security=True

أرجو أن توضح أين يقع التطبيق الخاص بك بالنسبة لقاعدة البيانات التى تحاول الإتصال بها

أهو على نفس الجهاز أم على جهاز آخر

إذا كان نسخة الsql على نفس الجهاز الذى تعمل عليه

ضع مكان AdventureWorks إسم قاعدة البيانات التى تعمل عليها

إن كانت نسخة الsql على جخاز آخر فهذا يلزم منه إعدادات أخرى

تم تعديل هذه المشاركة بواسطة نور (محمد نور) في 24 ديسمبر 2008 في 20:38

لا إله إلا الله محمد رسول الله

アッラー以外に神はなし。ムハンマドはアッラーの使徒である

#13

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

طيب يا اخ نور لو ان قاعدة البيانات في جهاز اخر ما هي الاعدادات للربط بها؟

واشكركم على جهودكم المبذوله لمساعدتي

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

:blush:

#14

هناك طريقتين

الأولى تعتمد على وجود قاعدة البيانات فى جهاز فيه active directory يعنى من الآخر الشبكة تدار بواسطة Domain Controller

و يتم الإتصال على قاعدة البيانات من حساب تم إنشاءه مسبقا فى الDomain

الثانية و أنا أعتبرها أثقل على صدرى من الأولى

أن يتم عمل registered server من خلال الSSMS للجهاز الذى سوف يتم الإتصال منه من على الجهاز الذى فيه قاعدة البيانات و طبعا لابد أن يتم تفعيل الدخول عن طريق

SQL Auth.

و أن يتم إنشاء حساب للدخول أو إستخدام الSA

و يستحب و يستحسن بشدة إغلاق الجدار النارى فى كلتا الجهازين أو على الأقل فى الجهاز الذى سوف يتم منه الإتصال إلى السيرفر

صراحتا هى عمليه تشعرنى بالمغص و لا أرتاح لها و لكن هذا هو الحل المتوفر لمن ليس لديه خبرة بالويندوز سيرفر

طبعا الحل الأول أرقى و أفضل و أمن و أحسن بكثيييييييييير

لو أن هذه هى أول مرة سوف تصنع فيها هذا الامر أخبرنى و سوف أشرح لك الأمر بالصور إن شاء الله و إن كنت أرشح أن تبحث عن الأمر على النت فسوف تجد شرح لهذا الأمر بالتفصيل و أيضا يالصور

لا إله إلا الله محمد رسول الله

アッラー以外に神はなし。ムハンマドはアッラーの使徒である

#15

على فكرة لقد لاحظت فى الConnection string

التى كتبتها أول مرة فى أول مشاركة أنها للإتصال بنسخة المحلية

Local Host و ليس من أجل أن يتم الإتصال عبر الشبكة !!!

لا إله إلا الله محمد رسول الله

アッラー以外に神はなし。ムハンマドはアッラーの使徒である

#16

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

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

TarqVB لدي طلب للاخ

ممكن تعطيني مراجع تشرح

Login Failed

Visual basic 2005لل

لو كانت بالعربي يكون احسن

ولكم جزيل الشكر على مجهودكم

#17

السلام عليكم

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

من البحث

/index.ph...st&p=690575

فكما في الصور في المشاركة 3 تحتاج الى اضافة المستخدم ASPNET

ويجب ان تعطيه الصلاحيات على قاعدة البيانات التي تعمل عليها وانظر الى هذا الموضوع لكيفية اعطاء الصلاحيات ولمعرفة اسم السيرفر

/index.php?showtopic=163923

#18

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

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

اتاسف منكم لاني من البداية كنت بكتب اننا نعمل على

Visual basic

ونحن بالاصح نعمل على

Visual Studio

وبالتالي اعتقد انها تختلف طريقة تحديد المستخدمين وصلاحياتهم

ولذلك لم اكن استطيع تطبيق الدروس السابقة

لذلك اتاسف مرة اخرى

:blush: تحياااتي

#19

السلام عليكم

اخي الكريم

ما طرحته لك سابقا لا يخص لغة او برنامج محدد لكن مايخص تصميم المواقع هو المستخدم ASPNET فهذا متعلق بالبرمجة ب Asp.net فبعد اضافته واعطاؤه الصلاحيات سيعمل الموقع .

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