سؤال

عند بدء تطبيق أحصل على: الخاصية "سلسلة_اتصال" لم يتم تهيئة.

ويب.التكوين:

<connectionStrings>
    <add name="MyDB"
         connectionString="Data Source=localhost\sqlexpress;Initial Catalog=mydatabase;User Id=myuser;Password=mypassword;" />
</connectionStrings>

المكدس التالي:

System.Data.SqlClient.SqlConnection.PermissionDemand() +4876643
System.Data.SqlClient.SqlConnectionFactory.PermissionDemand(DbConnection outerConnection) +20
System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +117
System.Data.SqlClient.SqlConnection.Open() +122

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

ماذا يعني ذلك ؟ هو الويب الخاص بي.التكوين سيئة ؟ هو وظيفة سيئة ؟ هو SQL التكوين لا تعمل بشكل صحيح (أنا باستخدام sqlexpress)?

مشكلتي الرئيسية هنا هي أن أنا لست متأكدا من أين تبدأ لتصحيح هذا...أي شيء من شأنه أن يساعد.

تحرير:

Failling كود:

MySQLHelper.ExecuteNonQuery(
ConfigurationManager.AppSettings["ConnectionString"],
CommandType.Text,
sqlQuery,
sqlParams);

sqlQuery هو استعلام مثل "حدد * من الجدول".sqlParams ليست ذات الصلة هنا.

المشكلة الأخرى هنا هي أن تستخدم الشركة MySQLHelper ، وليس لدي أي وضوح أكثر من ذلك (فقط dll المساعد ليب).فقد كان يعمل في مشاريع أخرى ، لذلك أنا 99% أن الخطأ لا يأتي من هنا.

أعتقد إذا كان هناك أي وسيلة debuging دون رؤية رمز سوف تضطر إلى الانتظار للحصول على اتصال مع الشخص الذي قام بإنشاء هذا المساعد من أجل الحصول على التعليمات البرمجية.

هل كانت مفيدة؟

المحلول

الرجوع إلى سلسلة الاتصال يجب أن يتم على هذا النحو:

MySQLHelper.ExecuteNonQuery(
ConfigurationManager.ConnectionStrings["MyDB"].ConnectionString,
CommandType.Text,
sqlQuery,
sqlParams);

ConfigurationManager.AppSettings["ConnectionString"] أن تبحث في AppSettings عن شيء يدعى ConnectionString, التي لن تجد.هذا هو السبب في رسالة الخطأ الخاصة بك إلى "ConnectionString" property has not been initialized, لأنه يبحث عن تهيئة ملك AppSettings اسمه ConnectionString.

ConfigurationManager.ConnectionStrings["MyDB"].ConnectionString يرشد إلى البحث عن سلسلة الاتصال اسمه "MyDB".

هنا يتحدث أحد حول استخدام شبكة الإنترنت.التكوين سلاسل اتصال

نصائح أخرى

يمكنك الحصول على هذا الخطأ عند مصدر بيانات محاولات لربط البيانات ولكن لا يمكن لأنه لا يمكن العثور على سلسلة الاتصال.في تجربتي, ليس هذا هو عادة بسبب خطأ في شبكة الإنترنت.التكوين (على الرغم من أنني لست متأكدا 100 ٪ من هذا).

إذا كنت برمجيا تعيين مصدر البيانات (مثل SqlDataSource) أو إنشاء استعلام (أيباستخدام SqlConnection/SqlCommand الجمع) ، تأكد من تعيين ذلك سلسلة_أحرف_الاتصال.

SqlConnection myCon = new SqlConnection(ConfigurationManager.ConnectionStrings[nameOfString].ConnectionString;

إذا كنت تركيب databound عنصر إلى مصدر بيانات (أيأ GridView أو مربع تحرير وسرد إلى SqlDataSource), تأكد من أن البيانات يتم تعيين واحدة من سلاسل اتصال.

وظيفة الكود الخاص بك (على databound عنصر على شبكة الإنترنت.التكوين أن تكون آمنة) و يمكننا أن نلقي نظرة على ذلك.

تحرير: أعتقد أن المشكلة هي أن تحاول الحصول على اتصال سلسلة من AppSettings المنطقة ، برمجيا التي ليس فيها موجود.حاول استبدال ذلك مع ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString (إذا سلسلة_أحرف_الاتصال هو اسم سلسلة الاتصال.)

سلسلة الاتصال هو لا في AppSettings.

ما تبحث عنه هو:

System.Configuration.ConfigurationManager.ConnectionStrings["MyDB"]...

استخدام [] بدلا من () على النحو التالي على سبيل المثال.

SqlDataAdapter adapter = new SqlDataAdapter(sql, ConfigurationManager.ConnectionStrings["FADB_ConnectionString"].ConnectionString);
            DataTable data = new DataTable();
            DataSet ds = new DataSet();

ببساطة في الكود خلف الصفحة الاستخدام:-

SqlConnection con = new SqlConnection("Data Source = DellPC; Initial Catalog = Account; user = sa; password = admin");

يجب أن تعمل على ما يرام

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top