خطای دیتابیس در هنگام ساخت فایل نصبی در سی شارپ
با عرض سلام و خسته نباشید
بنده یک پروژه با سی شارپ ورژن 2015 نوشتم که متصل به Sql Server 2016 هست ، روی سیستم خودم بدون مشکل کار میکنه ، ولی روی سیستم های دیگه ، خطا دیتابیس رو میده .
آیا راه حلی برای این مشکل هست ؟
آدرس دیتابیس من این هست
; SqlConnection sc = new SqlConnection("Data Source=.;Initial Catalog=Bsj;Integrated Security=True")
اطلاعات داخل App.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="Comile_Software.Properties.Settings.BsjConnectionString"
connectionString="Data Source=.;Initial Catalog=Bsj;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
</configuration>
14 پاسخ
ممنونم بابت وقتی که گذاشتید
دوباره چک کردم کانکشنم این بود
Data Source=.;Initial Catalog=Bsj;Integrated Security=True
نام دیتابیسم Bsj هست
بله
این خطاها رو هنگام درج داده میده
این هم متن خطا
See the end of this message for details on invoking just-in-time (JIT) debugging instead of this dialog box. ************** Exception Text ************** System.Data.SqlClient.SqlException (0x80131904): Cannot open database "Bsj" requested by the login. The login failed. Login failed for user 'ALI\Ali'. at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) at System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior) at System.Data.Common.DbDataAdapter.Fill(DataTable dataTable) at Comile_Software.frmRegistry.btnOk_Click(Object sender, EventArgs e) at System.Windows.Forms.Control.OnClick(EventArgs e) at System.Windows.Forms.Button.OnClick(EventArgs e) at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ButtonBase.WndProc(Message& m) at System.Windows.Forms.Button.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) ClientConnectionId:f8058dc6-c8f8-48a9-bf8e-cf9982c99c1b Error Number:4060,State:1,Class:11
فکر می کنم مشکل از کانکشن استرینگش باشه ، ولی نمی دونم چجوری باید کانکشن استرینگشو بنویسم که خطا نداشته باشه .
بله دقیقا مشکل از کانکشن استرینگ هست که میگه نمی تونه با یوزر Ali وارد بشه
ولی نباید این مشکل رو میداد شما چک کنید ببنید ایا کانکشنتون دقیقا به شکل زیر هست
Data Source =. ; Initial Catalog=YourdbName;Integrated Security=True;
بله اضافه کردم ، ولی در سیستم مقصد عملیات درج ، حذف و ... رو انجام نمیده .
با خطا مواجه میشه
دیتابیس ها رو هم در محل نصب برنامه کپی کردم
sql server express رو به فایل نصبی برنامه اضافه کردید؟
لطفا ارور رو ارسال کنید
سلام
یعنی چه عبارتی رو باید بنویسم ؟
نیگا کنید توی سیستم بنده به این شکل است باید دید در سیستم کاربر چیه
سلام
شما دارید از دیتابیسی استفاده میکنید روی سیستم خودتان است(Data Source=. )
باید جای (Data Source=. )آدرس تحت شبکه را بدهید که قابل شناسای باشد
خیلی ممنونم از راهنماییتون
شما میتونید یه کار دیگه بکنید
Server=DESKTOP-6KED9VK;DataBase=yourdbName;Trusted_Connection=True;
اینم یه روش هست که در این روش فک نکنم دیگه ارور بده
خیلی ممنونم
این رو به جای کانکشن خودم قرار بدم ؟