I've been using VistaDB for many years and recommend it highly.
Glen Harvy
I've been using VistaDB for many years and recommend it highly.
Glen Harvy
It's good to hear from someone else that is constrained by dollars. My wish list is large and I get frustrated when there just isn't enough money to mix with the dev's that have corporate millions behind them. Backups though are very important - I just don't know what I would do if I lost a weeks work let alone the whole kit and caboodle!! Best wishes and good luck...
Glen Harvy
I'm a lone developer and I use a single desktop. Attached to my desktop is a Netgear NAS with 4x2 TB disks. I have used StorageCraft for almost 3 years. I have used StorageCraft to restore whole hard-disks as well as restore selected directories and files. StorageCraft automatically backs up my projects directory 8 times a day and has never failed me. Prior to discovering StorageCraft, I've used Nero, Acronis as well as several others that I've forgotten about. About 18 months ago I had an issue (I honestly can't remember what it was) and I rang them. Their support was immediate and solved my issue within a couple of hours. They also took the time to explain some of the intricacies of the product as clearly I needed a bit of extra help :-) I've never used EaseUS. If you chose StorageCraft then all I can say is that you won't be disappointed.
Glen Harvy
That sort of defeats the purpose really of the Thunderbird Newsreader. I liked the ability to read the first paragraph or two and then scroll down and read the whole article if it interests me. If it grabbed my attention I would then open the page in the browser window. Clicking "Full Site" opens yet another browser window/tab which I then need to close and then repeat this process for each item - the majority of which don't interest me. This behaviour only started a month or so ago so somewhere, someone has changed something and as far as I can tell it is most likely a Thunderbird issue.
Glen Harvy
Hi, I've used Thunderbird for reading the articles for years and about a month or so ago the html rendering in the Thunderbird reader pane has become huge [http://www.aquarius.com.au/tbird.jpg] Has anyone discovered how to reduce it back to 'normal'?
Glen Harvy
Yes - thanks for that. I reworked http://msdn.microsoft.com/en-us/library/ms404320.aspx[^] and passed the bindingsource to the control. Works well. Regards,
Glen Harvy
Hi, I have a winform that has a grid linked to a bindingsource. The winform also has a usercontrol on it that also contains databound data linked to the same datatable but via a different bindingsource. There is a definite need to have the separate usercontrol although life would be much easier without it . The usercontrol is loaded onto the winform as a module contained within the winforms tab pages collection. Anyhow, what I need to do is use the winforms grid as the navigator for the usercontrols binding source. I have tried everything I can think of, the 'easiest' being to change a static variable on the usercontrol and then have a static method on the usercontrol change the bindingsource position but the bindingsource itself needs to be made static and that's not possible as far as I know? Can someone come up with some code that will do the trick. Thanks.
Glen Harvy
Hi, I am relatively new to asp.net but not c# and sql/ssce. I have a working web project that presents the user with a datagrid bound to the following data:
The relative web.config excerpt is:
Works great. Now I am trying to add a second page that also presents a datagrid bound as follows:
The appropriate web.config excerpt:
When loading the second page I get the following error: Unable to find the requested .Net Framework Data Provider. It may not be installed. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.ArgumentException: Unable to find the requested .Net Framework Data Provider. It may not be installed. Now the only difference that I can see is the differing database file and the fact that it is password protected. I can't understand the error message because it should (I would have thought) applied to the first datagrid as well as the Data Providers are both the same! The error stack trace, written in swahilli as far as I can tell :) reads: [ArgumentException: Unable to find the requested .Net Framework Data Provider. It may not be installed.] System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName) +1310319 System.Web.UI.WebControls.SqlDataSource.GetDbProviderFactory() +67 System.Web.UI.WebControls.SqlDataSource.GetDbProviderFactorySecure() +22 System.Web.UI.WebControls.SqlDataSource.CreateConnection(String connectionString
Hi Oliver, First, my sincere thanks for responding. I have delayed answering because I wanted to look further into this and do some testing. As you can see from the following, you can have different permissions for the same NTUser Account: 2009-03-26 17:12:51.6832 TestVista.Form1 Captured the ------------ BUILTIN\Users 2009-03-26 17:12:51.6832 TestVista.Form1 IdentityReference.Value: BUILTIN\Users 2009-03-26 17:12:51.6832 TestVista.Form1 AccessControlType: Allow 2009-03-26 17:12:51.6832 TestVista.Form1 FileSystemRights: FullControl 2009-03-26 17:12:51.6832 TestVista.Form1 InheritanceFlags: ContainerInherit, ObjectInherit 2009-03-26 17:12:51.6832 TestVista.Form1 IsInherited: False 2009-03-26 17:12:51.6832 TestVista.Form1 PropagationFlags: None <--> 2009-03-26 17:12:51.6832 TestVista.Form1 Captured the ------------ BUILTIN\Users 2009-03-26 17:12:51.6832 TestVista.Form1 IdentityReference.Value: BUILTIN\Users 2009-03-26 17:12:51.6832 TestVista.Form1 AccessControlType: Allow 2009-03-26 17:12:51.6832 TestVista.Form1 FileSystemRights: ReadAndExecute, Synchronize 2009-03-26 17:12:51.6832 TestVista.Form1 InheritanceFlags: ContainerInherit, ObjectInherit 2009-03-26 17:12:51.6832 TestVista.Form1 IsInherited: True 2009-03-26 17:12:51.6832 TestVista.Form1 PropagationFlags: None 2009-03-26 17:12:51.6832 TestVista.Form1 Captured the ------------ BUILTIN\Users 2009-03-26 17:12:51.6832 TestVista.Form1 IdentityReference.Value: BUILTIN\Users 2009-03-26 17:12:51.6832 TestVista.Form1 AccessControlType: Allow 2009-03-26 17:12:51.6832 TestVista.Form1 FileSystemRights: AppendData 2009-03-26 17:12:51.6832 TestVista.Form1 InheritanceFlags: ContainerInherit 2009-03-26 17:12:51.6832 TestVista.Form1 IsInherited: True 2009-03-26 17:12:51.6832 TestVista.Form1 PropagationFlags: None 2009-03-26 17:12:51.6832 TestVista.Form1 Captured the ------------ BUILTIN\Users 2009-03-26 17:12:51.6832 TestVista.Form1 IdentityReference.Value: BUILTIN\Users 2009-03-26 17:12:51.6832 TestVista.Form1 AccessControlType: Allow 2009-03-26 17:12:51.6832 TestVista.Form1 FileSystemRights: CreateFiles 2009-03-26 17:12:51.6832 TestVista.Form1 InheritanceFlags: ContainerInherit 2009-03-26 17:12:51.6832 TestVista.Form1 IsInherited: True 2009-03-26 17:12:51.6832 TestVista.Form1 PropagationFlags: None This at first confused me immensely but your comments and my searching has helped me understand a lot more. First, explicitly set permissions override inherited permissions, deny
Hi, I am programmatically adding an Access Rule to a file for BUILTIN\Users and giving them Full Control. The same file also inherits from it's folder an Access Rule for BUILTIN\Users with lower control levels. My Question is, you can apparently set as many rules as there are combinations for a NTUser BUT which one will apply? Hopefully in the above case, Full Control will be granted. My second question - will the same apply to folders. Thanks, Glen
Glen Harvy
Thanks for your comments. I have made some progress:
DaveyM69 wrote:
you need to add an Application Manifest File
Actually, VS2008 adds it for you automatically and it defaults to 'asInvoker'. That's why my application runs OK when launched by the installer (by default the installer has elevated privileges) but not when the user (without elevated privileges) launches my application.
DaveyM69 wrote:
The recommendation is to make the program not require elevation, but as you know, that's not always possible/practical.
My application pops up it's own messagebox saying it can't access it's database. I included this ages ago well before Vista. I have determined that with Vista, it is because the UAC prevents access to the Common Application Data folder. The name of that folder is to me incongruous and lead me away from the fact that it cannot be read or accessed unless you have sufficient privileges. It's 'common' to all users accessing my application but not 'common' to all user privileges. Having discovered that fact, I later discovered that my Installer (InstallAware) fails to set privileges even if I do tell it to. Apparently you need to write additional scripts to get InstallAware to do it in Vista but InstallAware's help file and support generally lacks any specific information on how to do this. Earlier in this thread, you will read how I have discovered some code which I have now included in a program that runs at install time and therefor inherits InstallAware's elevated privileges. This code apparently sets the permissions successfully. Unfortunately I don't even own a copy of Vista so I can't personally test this. I am waiting for a tech savvy person I know who owns Vista to test it for me. If it works, I will post a small article because frankly, I don't see what all the fuss is about in regards to the UAC and Vista.
Glen Harvy
tech603 wrote:
right click on the application and select run as administrator
I never knew that - thanks - it is another option I can suggest until I get this issue resolved.
Glen Harvy
harold aptroot wrote:
What do you need it for anyway?
When someone downloads my program to test it out, the last thing I want them to have to do is send me an email saying - it doesn't work :confused: I would think many would just uninstall it and I've lost a sale. If I know my program doesn't work then I need to tell my users how to bypass/fix the problem or fix it myself. I don't want to tell my prospective client that MS doesn't know what it is doing in regards to the UAC and please turn it off. What are they going to think about me :(
Glen Harvy
I have been telling my users to switch the UAC of and of course this solves their immediate problem. However, that doesn't solve the issue - why can't my program read the data directory :mad: After another couple of hours research it seems InstallAware isn't changing the permissions as I thought it was. This now seems to make everything fall into place for me. I have found this http://stackoverflow.com/questions/243995/setting-folder-permissions-on-vista[^] and as I already have InstallAware (which is running with sufficient privileges) run an update program then I will include the method and make sure the said directory is granted read/write access.
Glen Harvy
Hi, I am trying to come to grips with Vista UAC and am having problems understanding the following.... My installer software (InstallAware) uses $ALLAPPDATA$ as a pointer to the environment variable 'common user data' which prior to Vista was c:\documents and settings\all users\application data\program name etc' . In Vista it becomes 'c:\programdata\program name etc'. The installer installs all the data files in either Vista and XP etc OK but when the user runs my program in Vista, my program says it can't access the data files. Disabling the UAC fixes the problem. I specifically use InstallAware to set permissions for all users to have read write access to the $ALLAPPDATA$ folder. Can someone tell me what I am missing? Thanks...
Glen Harvy
Hi, I'm new to web development and asp.net and can't figure this one out. I've manually created a datatable in my dataset.xsd page and now I want to bind a gridview to that datatable. I need to do this so I can design the gridview at design time and manipulate it at runtime. I will be populating the datatable at runtime as well. I can't see how to create a suitable datasource to link to the table? Can someone point me in the right direction please. Obviously I'm coming from a forms background. Thanks.
Glen Harvy
Here's my latest effort:
string tempDBLocation = MainForm.dataDirectory + @"Temp\\";
string tempXMLFile = tempDBLocation + @"tempData.xml";
string conString = "Data Source=" + tempDBLocation + "my.sdf;Persist Security Info=False";
SqlCeConnection conn = new SqlCeConnection(conString);
SqlCeCommand command = conn.CreateCommand();
conn.Open();
string tableName = "Config";
SqlCeDataAdapter mySqlCeDataAdapter = new SqlCeDataAdapter("select \* from " + tableName, conn);
DataTable myDT = new DataTable(tableName);
mySqlCeDataAdapter.Fill(myDT);
myDT.WriteXml(tempXMLFile,XmlWriteMode.WriteSchema);
conn.Close();
conString = Properties.Settings.Default.mycourtsConnectionString.ToString();
SqlCeConnection conn2 = new SqlCeConnection(conString);
SqlCeCommand command2 = conn2.CreateCommand();
conn2.Open();
SqlCeDataAdapter mySqlCeDataAdapter2 = new SqlCeDataAdapter("select \* from " + tableName, conn2);
DataTable myDT2 = new DataTable(tableName);
mySqlCeDataAdapter2.Fill(myDT2);
SqlCeCommandBuilder ccmdBuilder = new SqlCeCommandBuilder(mySqlCeDataAdapter2);
for (int i = 0; i < myDT2.Rows.Count; i++)
{
myDT2.Rows\[i\].Delete();
}
myDT2.ReadXmlSchema(tempXMLFile);
myDT2.ReadXml(tempXMLFile);
command2.CommandText = "SET IDENTITY\_INSERT " +tableName + " ON";
command2.ExecuteScalar();
mySqlCeDataAdapter2.Update(myDT2);
conn2.Close();
And of course the Update command now generates this error: The column cannot contain null values. [ Column name = ID,Table name = Config ] It makes sense of course but how do I get around this - or must I generate an insert command and do it that way.
Glen Harvy
Thanks for your help. Your suggestion would seem to resolve my problem however I am not aware of a way to achieve my end result without using datasets and datatables as in the following code:
string tempDBLocation = MainForm.dataDirectory + @"Temp\";
string tempXMLFile = tempDBLocation + @"tempData.xml";
// Replace the current Database with the selected backup
File.Copy(MainForm.dataDirectory + "my.sdf", MainForm.dataDirectory + "my_org.sdf", true);
File.Copy(tempDBLocation + "my.sdf", MainForm.dataDirectory + "my.sdf", true);
// Fill and save to xml the table
this.configTableAdapter1.Fill(this.adminDataSet1.Config);
this.adminDataSet1.Config.WriteXml(tempXMLFile, XmlWriteMode.WriteSchema);
// Replace the original database
File.Copy(MainForm.dataDirectory + "my_org.sdf", MainForm.dataDirectory + "my.sdf", true);
File.Delete(tempDBLocation + "my.sdf");
File.Delete(MainForm.dataDirectory + "my_org.sdf");
// empty the current datatable of all data
this.configTableAdapter1.Fill(this.adminDataSet1.Config);
for (int i = 0; i < this.adminDataSet1.Config.Rows.Count; i++)
{
this.adminDataSet1.Config.Rows[i].Delete();
}
this.configTableAdapter1.Update(this.adminDataSet1.Config);
this.adminDataSet1.AcceptChanges();
// Read the xml data into the table
this.adminDataSet1.Config.ReadXmlSchema(tempXMLFile);
this.adminDataSet1.Config.ReadXml(tempXMLFile);
this.configTableAdapter1.Update(this.adminDataSet1.Config);
this.adminDataSet1.AcceptChanges();
I would prefer not to use ado.net but am unable to locate how to achieve what I want without it. It seems I have a lot more research to do. Thanks for your assistance.
Glen Harvy
Hi, I would like to be able to copy the data in a table from an old version of a sqlce database into the current version of the sqlce database. The datatable must be replaced ie the row ID numbers must remain the same. I thought that writing the old datatable to to an xml file and then reading that data back in would do the trick but I can't get it to work. Has anyone achieved what I wish and if so, how did they go about it as I've tried a few alternatives without any luck. Thanks,
Glen Harvy
I think I may be confusing myself with the UI Culture and the computers culture. In my application I don't touch the computers culture and therefor I didn't think there would be a problem. For example. the application's user can chose to set the UI culture to English or Spanish ie the labels/text in the program can be displayed in either English or Spanish. If they are using the program on a German computer then the dates etc will still be in German. As you said, I could have ignored the culture altogether and just used the ResourceManager as a wrapper. I'm trying to test all this on a VM but it's a bigger task than I imagined because the .Net version is in English so 'OK' is 'OK', not whatever is German for 'OK'. What triggered my 'panic' was that I have a Kuwaiti prospective customer who wants to get rid of the '$' and presumably use 'KD'. I paniced because I would have expected it to use 'KD' or whatever currecy symbol is appropriate for the users region. Apparently there is no region specific culture for Kuwait so I think my application is performing as it should anyhow. Thanks for your input - it seems I only needed to talk it through.
Glen Harvy