PDA

View Full Version : حرفه ای: مشکل در ConnectionString



federrer
شنبه 02 مهر 1390, 11:58 صبح
باسلام ، به یه مشکل عجیب در اتصال به دیتابیس برخورد کردم .

در web config این کد رو نوشتم :




<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<connectionStrings>

<add name="MainConnStr" connectionString="data source=.\SQLEXPRESS;Integrated Security=True;AttachDBFilename=C:\INETPUB\WWWROOT\ A.MDF;User Instance=true"
providerName="System.Data.SqlClient" />
</connectionStrings>
<appSettings>
<add key="MainConnStr" value="data source=.\SQLEXPRESS;Integrated Security=True;AttachDBFilename=C:\INETPUB\WWWROOT\ A.MDF;User Instance=true" />
</appSettings>

<system.web>
<compilation debug="true"/>
<authentication mode="Windows"/>
<globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" culture="fa-IR" uiCulture="fa-IR"/>
</system.web>
</configuration>



از این کد هم برای استفاده از کانکشن استرینگ تعریف شده استفاده کردم:




string CS = (string)ConfigurationManager.AppSettings["MainConnStr"];



این یپغام رو دریافت میکنم:



Failed to generate a user instance of SQL Server due to failure in retrieving the user's
local application data path.

fakhravari
شنبه 02 مهر 1390, 12:58 عصر
چرا 2 بار تعریف کردین با یک اسم MainConnStr

federrer
شنبه 02 مهر 1390, 14:53 عصر
چون میخواستم تو کد از متد APPsettings استفاده کنم تو web.config از <appSettings> استفاده کردم ،گفتم اگر جواب نداد از همون متد Connectionstring استفاده کنم .دیگه تگ




<add name="MainConnStr" connectionString="data source=.\SQLEXPRESS;Integrated Security=true;AttachDBFilename=C:\INETPUB\WWWROOT\ AGRI-BANK.MDF;User Instance=true"
providerName="System.Data.SqlClient" />


رو پاک نکردم . البته پاک هم بکنم فرقی نداره . به این مشکل ربطی نداره.

ویندوز 7 دارم . اونطوری که پیگیری کردم مثل اینکه باید در IIS MANEGER >APPLICATION POOLS یه سری تنظیمات انجام بدم.

چیزی در این موردمیدونید

clover
شنبه 02 مهر 1390, 15:04 عصر
توی کانکشن استرینگ User Instance رو برابر false ست کنید:

User Instance=false

par4parvaz
شنبه 02 مهر 1390, 15:32 عصر
به پوشه ای که پایگاه دادت توشه مجوز دسترسی کامل بده
روی پوشه راست کلیک کن به قسمت properties برو
وارد قسمت security شو
edit رو بزن و users و administrator رو full control کن
واسه اجرای visual studio هم روش راست کلیک کن و run az admin رو بزن

atarodi
شنبه 02 مهر 1390, 17:47 عصر
به پوشه ای که پایگاه دادت توشه مجوز دسترسی کامل بده
روی پوشه راست کلیک کن به قسمت properties برو
وارد قسمت security شو
edit رو بزن و users و administrator رو full control کن
واسه اجرای visual studio هم روش راست کلیک کن و run az admin رو بزن

نه این راه حل برای اینجا عمل نمی کنه. زمانی از این راه حل استفاده می کنیم که با خطای Login Failed..... مواجه باشیم. برای خطایی که دوستمون ذکر کردند.. این خطا علتهای بسیاری داره. که باید در گوگل سرچ نمایید.

federrer
شنبه 02 مهر 1390, 23:56 عصر
دستتون درد نکنه ، با هر مصیبتی بود اون مشکل رو حل کردم .
حالا رسیدم به
"property کانکشن استرینگ ،مقدار دهی اولیه نشده است-
The ConnectionString property has not been initialized." !!!
قبلا تست کرده بودم ، حالا که دوباره میخوام اجرا کنم چپ و راست ارور میده!!!
کدفایل web.config این شد:


<connectionStrings>
<remove name="LocalSqlServer" />
<add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated Security=true;AttachDBFilename=C:\INETPUB\WWWROOT\ BANK.MDF;User Instance=True"
providerName="System.Data.SqlClient" />
<add name="MainConnStr" connectionString="data source=.\SQLEXPRESS;Integrated Security=true;AttachDBFilename=C:\INETPUB\WWWROOT\ BANK.MDF;User Instance=true"
providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<compilation debug="true"/>
<authentication mode="Windows"/>
<globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" culture="fa-IR" uiCulture="fa-IR"/>
</system.web>


و این کد رو هم تو صفحه نوشته ام که میخوام کانکشن رو باز کنم و پارامترها رو واسه یه استورپروسیجر بفرستم:




string CS = (string)ConfigurationManager.AppSettings["MainConnStr"];
SqlConnection Cnn= new SqlConnection(CS);

SqlCommand A = new SqlCommand("spRegister",Cnn);
()A.CommandType = CommandType.StoredProcedure;
string findmadrak = DDL1.SelectedItem.Text.ToString();
string findsanavat = DDL2.SelectedItem.Text.ToString();

A.Parameters.Add(newSqlParameter("@MADRAK", SqlDbType.NVarChar));
A.Parameters["@MADRAK"].Value = findmadrak;
A.Parameters.Add(newSqlParameter("@SANAVAT", SqlDbType.NVarChar));
A.Parameters["@SANAVAT"].Value = findsanavat;

A.Connection.Open();
A.ExecuteNonQuery();
A.Connection.Close();




حالا این وسط به A.Connection.Open(); گیر میده که :



Exception Details: System.InvalidOperationException: The ConnectionString property has not been initialized.