J'ai un fichier de base de données dans mon répertoire C:/(que j'ai aussi essayé de placer dans le répertoire C:/CustomerApp_C). Je peux exécuter l'application et elle charge les données très bien. Cependant, lorsque je change certaines données et que je clique sur Enregistrer, l'exception "Une exception non gérée s'est produite dans votre application" bla bla bla "..." Impossible de mettre à jour le "chemin" de la base de données car la base de données est en lecture seule.C# - mettre à jour le fichier de base de données dans le dossier C:/ou C:/provoque une erreur de fichier readonly fatale
Il me donne alors ce dans les détails:
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): Failed to update database "C:\CUSTOMERAPP_C\DATA.MDF" because the database is read-only.
at System.Data.Common.DbDataAdapter.UpdatedRowStatusErrors(RowUpdatedEventArgs rowUpdatedEvent, BatchCommandInfo[] batchCommands, Int32 commandCount)
at System.Data.Common.DbDataAdapter.UpdatedRowStatus(RowUpdatedEventArgs rowUpdatedEvent, BatchCommandInfo[] batchCommands, Int32 commandCount)
at System.Data.Common.DbDataAdapter.Update(DataRow[] dataRows, DataTableMapping tableMapping)
at System.Data.Common.DbDataAdapter.UpdateFromDataTable(DataTable dataTable, DataTableMapping tableMapping)
at System.Data.Common.DbDataAdapter.Update(DataTable dataTable)
at CustomerApp.CustomerAppDS2TableAdapters.CustomerTableAdapter.Update(CustomerDataTable dataTable) in C:\Users\Clarkey\Documents\Visual Studio 2010\Projects\CustomerApp2\CustomerApp\CustomerAppDS2.Designer.cs:line 2311
at CustomerApp.CustomerAppForm.button1_Click(Object sender, EventArgs e) in C:\Users\Clarkey\Documents\Visual Studio 2010\Projects\CustomerApp2\CustomerApp\CustomerAppForm.cs:line 123
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)
************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.1 (RTMRel.030319-0100)
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
CustomerApp
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///C:/Users/Clarkey/Documents/Visual%20Studio%202010/Projects/CustomerApp2/CustomerApp/bin/Debug/CustomerApp.exe
----------------------------------------
System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.1 built by: RTMRel
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.1 built by: RTMRel
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.1 built by: RTMRel
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.1 (RTMRel.030319-0100)
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.1 built by: RTMRel
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Data
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.1 (RTMRel.030319-0100)
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll
----------------------------------------
System.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.1 built by: RTMRel
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Data.DataSetExtensions
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.1 built by: RTMRel
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Data.DataSetExtensions/v4.0_4.0.0.0__b77a5c561934e089/System.Data.DataSetExtensions.dll
----------------------------------------
System.Numerics
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.1 built by: RTMRel
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/v4.0_4.0.0.0__b77a5c561934e089/System.Numerics.dll
----------------------------------------
System.Transactions
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.1 (RTMRel.030319-0100)
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Transactions/v4.0_4.0.0.0__b77a5c561934e089/System.Transactions.dll
----------------------------------------
System.EnterpriseServices
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.1 (RTMRel.030319-0100)
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.EnterpriseServices/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.EnterpriseServices.dll
----------------------------------------
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
For example:
<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
J'ai vérifié les propriétés du fichier et les 3 (le dossier, le fichier de base de données et base de données fichier journal) ont la lecture seule case cochée. Logiquement cela me fait dire qu'il doit être inscriptible ... mais oh non ce n'est pas ..!
J'ai essayé ce qui suit, comme l'a suggéré dans une recherche Google:
File.SetAttributes(@"C:\CustomerApp_C\Data.mdf", FileAttributes.Normal);
File.SetAttributes(@"C:\CustomerApp_C\Data_log.ldf", FileAttributes.Normal);
L'utilisation de ces deux lignes empêche l'application de même montrer à l'écran - même si je l'ai mis après le reste du code.
Quelqu'un at-il une idée de ce qui se passe ici? Toute aide serait grandement appréciée. Par ailleurs, mon nom d'utilisateur (et le nom d'utilisateur du client, lorsque cela est terminé) a des autorisations d'administrateur.
Cordialement,
Richard
Comment vous connectez-vous à la base de données? Pouvez-vous modifier la base de données à partir du SSM? – Lazarus
Im en supposant par SSM vous voulez dire SQL Server Manager ..? J'ai essentiellement une base de données externe, une connexion installée dans VS à partir de laquelle j'ai traîné deux tables à un DataSet. J'utilise le DataSet pour remplir un DataGridView. Cependant, DataGridView ne peut pas modifier la base de données, pas plus que la connexion. Je peux parcourir les données à la fois dans VS et dans l'application, mais pas le mettre à jour. – ClarkeyBoy