|
already answered[^].
How low can you go ? (MS retrofuck)
|
|
|
|
|
I have a form that binds controls to a dataset. Some of the fields in the dataset are date fields, so I am using DateTimePicker controls to display (and allow editing of) these fields.
However, the date field in question can be null. When this occurs navigation through the records in the dataset is stopped, that is setting the Position property on the BindingContext does not update the controls.
Is there a workaround that allows binding to null dates?
Derek Lakin.
I wish I was what I thought I was when I wished I was what I am.
Salamander Software Ltd.
|
|
|
|
|
Hi
How about modifying your dataset to insert a date as a default value, in case the field is NULL? Just a thought, mite work, mite not
Cheers
"There are no stupid question's, just stupid people."
|
|
|
|
|
Thanks for the idea, unfortunately a null date has meaning, so actually displaying a date would be confusing and misleading to the user.
Any other ideas?
I'm beginning to think I may have to do this myself. Any ideas what's involved in creating a data bound control?
Derek Lakin.
I wish I was what I thought I was when I wished I was what I am.
Salamander Software Ltd.
|
|
|
|
|
Hi again Derek
I just ran into a similar problem , but I have found a solution for binding a NULL value. Look at the following:
private byte rating;
[Bindable(true)]
public object Rating
{
get { return rating;}
set {
if (value == DBNull.Value) rating = 0;
else rating = (byte)value;
}
}
Hope this helps
"There are no stupid question's, just stupid people."
|
|
|
|
|
Q313513[^] might help. The code's in VB.NET, but it shouldn't be too hard to convert.
|
|
|
|
|
Better yet, here's some C# code that seems to work:
using System;
using System.Windows.Forms;
public class DateTimeBinding : Binding
{
public DateTimeBinding(string propertyName, object dataSource, string dataMember)
: base(propertyName, dataSource, dataMember)
{}
protected override void OnFormat(ConvertEventArgs e)
{
if (e.DesiredType == typeof(DateTime))
{
if (e.Value is DBNull)
e.Value = DateTimePicker.MinDateTime;
}
else if (e.DesiredType == typeof(bool))
{
if (e.Value is DBNull)
e.Value = false;
else
e.Value = true;
}
base.OnFormat(e);
}
protected override void OnParse(ConvertEventArgs e)
{
if (e.DesiredType == typeof(DateTime)
&& e.Value is DateTime
&& (DateTime)e.Value == DateTimePicker.MinDateTime)
e.Value = DBNull.Value;
else if (e.DesiredType == typeof(bool)
&& e.Value is bool
&& (bool)e.Value == false)
e.Value = DBNull.Value;
base.OnParse(e);
}
}
Then, you just need to add the appropriate bindings:
dtp.ShowCheckBox = true;
dtp.DataBindings.Add(new DateTimeBinding("Value", ds, "[Date Field]"));
dtp.DataBindings.Add(new DateTimeBinding("Checked", ds, "[Date Field]"));
I haven't tested updating the data, but the display seems to work fine.
|
|
|
|
|
Thanks, I'll take a look and let you know how I get on.
Derek Lakin.
I wish I was what I thought I was when I wished I was what I am.
Salamander Software Ltd.
|
|
|
|
|
Thanks very much (once again). I've had chance to try this out now and it certainly seems to work (though like you I haven't tested updating yet).
One thing that would make it a perfect (for me anyway) implementation was if the DateTimePicker.Text property could be set to "(null)" for null dates. Any ideas how to do that?
I tried setting this.Control.Text in the OnFormat override, but that caused the original problem to occur again Any ideas?
Derek Lakin.
I wish I was what I thought I was when I wished I was what I am.
Salamander Software Ltd.
|
|
|
|
|
|
I have an Access database that I'm trying to bind to in a Windows Form.
I've added all the necessary connections, data adapters and datasets and establish relations in the schema.
Unfortunately the table I want to be able to navigate and edit includes several fields that are lookups to other tables. I have the main table fields working fine with navigation done using the BindingContext Position property and I can bind a combo box to the lookup table to give the right values, but how do I get the lookup combo to display the correct value for the current record in the main table?
Derek Lakin.
I wish I was what I thought I was when I wished I was what I am.
Salamander Software Ltd.
|
|
|
|
|
Hi,
When I upload a file via ASP.NET HTTPPostedFile.SaveAs(foo.jpg)
The file foo.jpg is locked by another process for approx. 30 seconds.
I have ruled out;
VS.NET being in Debug Mode
AntiVirus Software...
I was just wondering if anyone else has run into this problem and if they found a remedy ?
Thanks in Advance
Angus Logan
|
|
|
|
|
Hi Angus,
Try to make Windows Indexing Service Manual. I had a similar problem that after every 'Build' Operation, my Web Application complained
'Access to /Temporary ASP.NET ... denied.' A suggestion in one of the forums suggested that if Indexing Service is enabled, it tries to index the newly built files from Visual Studio and during this period, the files are not accessible.
Most probably, the same scenario applies to you too. Just after call the PostedFile.SaveAs, the Indexing Service tries to index the newly created resource, resulting in a deadlock for your application from accessing the same.
Making Indexing Service Manual or stopping it should help you too.
Deepak Kumar Vasudevan
|
|
|
|
|
I am looking for a way to protect my .NET softwares from decompilation and disassembling.
I know there are many obfuscators available.
There is also a product named "Salamander .NET Protector" which is not an obfuscator.
Is there anybody that knows that product? Is it a good solution to protect the source code?
|
|
|
|
|
Can you give me the URL for Salamander .NET Protector, please?
Derek Lakin.
I wish I was what I thought I was when I wished I was what I am.
Salamander Software Ltd.
|
|
|
|
|
http://www.remotesoft.com/salamander/protector.html
|
|
|
|
|
|
|
Hi Folks
Re: ADO.NET : SqlDataReader : I need to assign retrieved value to C++ variable
I have found the source of the problem expressed in the thread "ADO.NET : SqlDataReader : I need to assign retrieved value to C++ variable":
http://www.codeproject.com/script/comments/forums.asp?forumid=3785#xx309754xx
but do not yet know why it occurs or how I can fix it.
The problem arises with the /clr compiler setting.
Here is the code to illustrate this:
/////////////////////////////////////////////////////////
#include <stdafx.h>
#include <cstdlib>
#include "try_ADONET.h"
//#using <mscorlib.dll>
//#using <system.dll>
//#using <system.data.dll> // This is required for the ADO.NET Provider
using namespace std;
//using namespace System;
int Main()
{
CString busNumberSQL[2];
CString bus = "Hello";
busNumberSQL[1] = bus;
return 0;
}
////////////////////////////////////////////////////////
Without the /clr setting the array of CString busNumberSQL[2] is correctly contructed as is CString bus and the line
busNumberSQL[1] = bus;
works as expected. This can be seen by putting a breakpoint in at
return 0;
and seeing the variables in a Watch. Copy the expanded Watch details (Name, Value & Type) to an EXCEL sheet.
..................
Next, add the compiler switch /clr and rerun the code.
CString bus is constructed correctly BUT something weird happens in the construction of CString busNumberSQL[2].
Now,
busNumberSQL[1] = bus;
results in the address of bus as an integer being assigned to busNumberSQL[1], and look at the Watch details!!
Copy the expanded Watch details (Name, Value & Type) to an EXCEL sheet
Name: busNumberSQL; Value: {Length=2}; Type: ATL::CStringT<char,strtraitmfc<char,atl::chtraitscrt<char> > >[] ...(Note no dimension at end compared to the "no /clr" case.
Next Watch line: [0] 2083454756 __int32
Next Watch line: [1] 3103464 __int32
My conclusion is that busNumberSQL[2] is not an array of CString.
Of course, I need the /clr in order to use ADO.NET!
It seems as though a CString works, but a CString array for some (unknown) cannot even be defined.
Do you have any light for me? (I have not got into your previous post yet on Marshall)
Best regards
Doug.
(In case you are wondering I am very much a beginner with C++ and .NET)
Doug
|
|
|
|
|
Doug, I've noticed that you've posted this in several forums. In general, everywhere on the net(especially here on CP), what you are doing, which is known as cross-posting, is frowned upon. Please post a certain question only once. I know that your question deals with .NET/ADO.NET/C++.NET, but please post it in the C++ forum because that's what you are truly dealing with in your problem. Just wanted to give you a friendly reminder of posting-etiquette. Especially because some people can get a little harsh about this.
As an aside, welcome to CP and the development community.
Norm Almond: I seen some GUI's in my life but WTF is this mess
Leppie: I made an app for my sister and she wouldnt use it till it was colorful enough
Norm:good point leppie, from that statement I can only deduce that this GUI must be aimed at children
Leppie:My sister is 25
-Norm on the MailMagic GUI
|
|
|
|
|
David
Thank-you for informing me of this posting-etiquette, of which I was ignorant, and to which I will adhere in future.
I'll make a suggestion that forum etiquette/rules be expressed somewhere on the CP site.
Is the reason for this etiquette to avoid consuming too much computer real estate?
How does one ensure that one is "heard" by as many members as possible who may have the requisite knowledge to advise, but who may normally only browse in one particular forum?
Regards
Doug
Doug
|
|
|
|
|
Doug wrote:
Is the reason for this etiquette to avoid consuming too much computer real estate?
Not really.(Although Chris might tell you differently) The problem is that when you cross-post, people see all of them and it just gets annoying. I think that the best way to get people to see your post is just to post it in the VC++ forum. So many people are in that forum and a lot of them have dealt with Databases and ADO.NET before, so you may just want to post it there. Especially since your problem dealt more with C++ than with ADO.NET.
Norm Almond: I seen some GUI's in my life but WTF is this mess
Leppie: I made an app for my sister and she wouldnt use it till it was colorful enough
Norm:good point leppie, from that statement I can only deduce that this GUI must be aimed at children
Leppie:My sister is 25
-Norm on the MailMagic GUI
|
|
|
|
|
Another thing I noticed that I didn't quite respond to:
Doug wrote:
but who may normally only browse in one particular forum?
Believe me Doug, CP becomes an addiction, and if you start spending any amount of time on here, you will find this to be true: Nobody only visits one forum. For instance, I regularly visit The Lounge, The Soapbox, the C# forum, the .NET Framework forum, and the new ASP.NET forum. Along with the others that I frequent less regularly such as the ADO.NET forum and the general Web Development forum. So really, you will probably catch the same amount of people. And if you've posted in the wrong forum (Don't ever post a programming question in the Lounge. You'll be unmercifully slaughtered), people will tell you where you should put your question or direct you to a specific person who may be able to answer it.
Norm Almond: I seen some GUI's in my life but WTF is this mess
Leppie: I made an app for my sister and she wouldnt use it till it was colorful enough
Norm:good point leppie, from that statement I can only deduce that this GUI must be aimed at children
Leppie:My sister is 25
-Norm on the MailMagic GUI
|
|
|
|
|
Doug,
Despite what David has said, I find the biggest problem with cross-posting is that it's really annoying when you spend time answering someone in one forum and then find that someone else has already given them the exact same answer somewhere else.
It's usually fair to say that people will visit every forum that applies to them and most questions do fall quite heavily into one category - yours for example is clearly of no interest to people who don't look at ADO.NET, despite the fact that it has C++ connections.
[EDIT]What the hell was I thinking about here? This sentence should have read "people who don't look at MC++, despite the fact that it has ADO.NET connections"!!![/EDIT]
If you do find that you don't get a response in the obvious forum and you start thinking you might have done better elsewhere, post a message in the other forum saying "Please take a look at this question in the ADO.NET forum:" and offering a link to the original message. That will usually draw a lot less scorn than cross posting.
David's suggestion that it's a good idea to post in the C++ forum because most people go there is a strange one.
For one thing, I'd imagine an MC++/ADO.NET question like yours would draw a few complaints in the C++ forum. For another, contrary to popular opinion, some people don't visit the C++ forum very often.
I for one find that I can't offer a lot of help there so I usually only go there when I want to ask a question. I make up for it by answering questions in the C# and Web Dev forums where I know a little bit more
Paul
Life is just a sexually transmitted desease - Matthew Wright (ex-journalist, TV presenter) 10-Oct-02
I finally have a sig! - Paul Riley (part-time deity) 10-Oct-02
|
|
|
|
|
Thanx Paul
Good points well made and taken to heart.
regards
Doug
Doug
|
|
|
|