|
use your database management tool to check the content of the field, and determine whether the problem is in storing or in retrieving the data.
BTW: you don't need a DataReader, a simple ExecuteScalar could suffice, see here e.g.: Save An Image Into SQL Server 2000 Database[^]
|
|
|
|
|
I am not much familiar with sql server.How to view the binary data in sql server.
??
|
|
|
|
|
Hey
my probs was solved.oops that was a mistake in the stored proc where i didn mentioned the size of binary data.SO only one data was storing
thanks a lot for ur help.
|
|
|
|
|
Gentleman,
I wrote an application that needs to get the Processor ID from the OS. I have been using it exactly as designed below for the last several years on Win XP and Vista. A recent user of this app reported to me that he is getting an error that would indicate that the Processor Id is not being returned as designed. Now, the only difference that I know of is that he is using Windows 7. Question: is there any reason why the Management Class call that I have here will not work on Win 7?...or should I look for a different problem elsewhere? Thank you in advance...Pat
public string GetProcId()
{
ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
if (cpuSerial == string.Empty || cpuSerial == null)
{
cpuSerial = mo.Properties["ProcessorId"].Value.ToString();
cpuSerial = cpuSerial.ToUpper().Trim();
}
}
return cpuSerial;
}
|
|
|
|
|
I've never seen code like that; the normal way to interact with Win32_Processor seems to be like this one[^], which works fine for me on XP and Vista.
Probably your Win7 is 64-bit and your code somehow isn't compatible with that, whereas the alternative probably is (can't test right now).
|
|
|
|
|
Thank you for your reply, Luc. As is often the case, there is more than one way to get from here to there. I have been using this exact snippet since at least 2004 and with series 2.0, 3.0, and 3.5 framework...it has always worked in the past and I can find similar examples on the net as well. I have personally tested it on XP, Vista, and 2003 Server and it works fine. This is the first time this has happened, but I until I know why, I have to stop distribution of the program. You have a nice idea re: the Bit version, so I checked it out and this guy is using XP Pro 32 bit, so that lets that idea out. I appreciate your input though, and if you come up with another idea, I'm certainly listening...
Best Regards, Pat
|
|
|
|
|
I have a treeview with ownerdrawn nodes. I also set an invividual indent value for each node, so each node has new bounds. The problem occurs on mouseover, hottracking is not triggered when mousing over the the last portion of the node - portion that equals to the length of the indent. Is there a way to set the mouseover bounds or maybe catch the event that triggers hottracking and force hottracking when mousing over the new bounds?
|
|
|
|
|
I usually read the resource using Properties.Resource.my_resource_name
But I want to pass the name from a variable, something like this:
String var_name = "my_resource_name"
How can I do that?
Thx
|
|
|
|
|
I don't know the full answer, here are some bits and pieces though:
string[] sa=assembly.GetManifestResourceNames();
foreach (string s in sa) log(s);
...
Bitmap bitmap=new Bitmap(type, resourceName);
...
Icon icon=new Icon(type, resourceName);
...
public static void PlaySound(Type type, string resourceName) {
try {
resourceName=type.Namespace+".resources."+resourceName;
Stream stream=type.Assembly.GetManifestResourceStream(resourceName);
int len=(int)stream.Length;
byte[] buf=new byte[len];
stream.Read(buf, 0, len);
GCHandle handle=GCHandle.Alloc(buf);
IntPtr ptr=Marshal.UnsafeAddrOfPinnedArrayElement(buf, 0);
int res=sndPlaySound(ptr, 4);
handle.Free();
env.log(env.TRACE, "Played sound "+resourceName);
} catch (Exception e) {
env.error(resourceName+" failed: "+e.Message);
}
}
|
|
|
|
|
I am first getting a list of strings from files that have dates in them ex. fileabc_20100612_1020.txt in a certain directory(expression S.ImportFolder)
my objective is to get a list of these dates in from a folder. My problem is that there will be some files with same dates in this case I want to select the newest one for that date like closest to 23:59 of that Date.
for example in c:\Temp there is
fileabc_20100612_1020.txt
fileabc_20100613_1020.txt
fileabc_20100614_1020.txt
fileabc_20100614_2320.txt
I would want to only import
fileabc_20100612_1020.txt
fileabc_20100613_1020.txt
fileabc_20100614_2320.txt
or exclude
fileabc_20100614_1020.txt
string[] fileEntries = Directory.GetFiles(S.ImportFolder);
foreach (string fileNameWithRoot in fileEntries)
{
string fileName = System.IO.Path.GetFileName(fileNameWithRoot);
....String manipulation.....
DateTime dtFileName = new DateTime();
try
{
DateTime dtFileName = Convert.ToDateTime(fileName);
}
catch (Exception e)
{
}
dicFiles.Add(dtFileName, fileName);
|
|
|
|
|
I don't see a problem, except for choosing one of many possible ways to get there. Here are some ideas:
1.
your filename convention is such that sorting them alphabetically also sorts them chronologically, that makes things easy. Start by sorting them alphabetically; if you think they already are, that is only true sometimes, it depends on the file system (NTFS versus FAT).
2.
you can convert a datetime string to a DateTime using DateTime.ParseExact() or DateTime.TryParseExact() . Works much better than any Convert method. But you don't have to. See below.
3.
when scanning the files chronologically, you're only interested in the last one of each date, so compare the date (or the first 16 characters, or all but the last 8 characters) of two consecutive names, when equal do nothing, when different, keep the oldest one. Make sure to also keep the very last file.
|
|
|
|
|
I am importing another system's files therefor I do cannot change the file naming convention
so Im thinking of parsing the file into: datetime, full name
How can I compare the each record against each other with the first 8 digits for example 20100719 and if it finds another string node with 20100719 to then look at the substring/node which would be the next 6 digits after the date.
then delete the record that is not the most current for that date.
Thanks in advance
|
|
|
|
|
o0romeo0o wrote: I do cannot change the file naming convention
I never suggested you change it; I said to take advantage of it.
I suggest you reread by earlier reply. it is all in there.
o0romeo0o wrote: How can I compare the each record against each other
There is no need to do that; just sort the array as I said before.
|
|
|
|
|
Thank you for your reply
I don't need the for example the last 4 latest records in the array... as I can have several days and the oldest date has 3 times it was altered creating 3 different files for that day... I would need the newest one.
|
|
|
|
|
I did read and understand your original post.
I'm not so sure you did read and understand any of my replies so far.
Anyway I have added yet another reply with the full code, albeit untested.
For me the subject is closed.
|
|
|
|
|
If the filename will always be in the format
name_yyyyMMdd_HHmm.extension
then you could use something like this (needs some [alot of] optimization but works). You can now implement a custom comparer to compare by name and if eqaul, compare by date.
public class MyFileData
{
private string fullname;
public MyFileData(string fullname)
{
this.fullname = fullname;
}
public string Fullname
{
get { return fullname; }
}
public string Name
{
get { return fullname.Substring(0, fullname.IndexOf('_')); }
}
public DateTime DateTime
{
get { return DateTime.ParseExact(fullname.Substring(fullname.IndexOf('_') + 1, 13), "yyyyMMdd_HHmm", CultureInfo.InvariantCulture); }
}
public string Extension
{
get { return fullname.Substring(fullname.IndexOf(".") + 1); }
}
}
DaveIf this helped, please vote & accept answer!
Binging is like googling, it just feels dirtier.
Please take your VB.NET out of our nice case sensitive forum.(Pete O'Hanlon)
BTW, in software, hope and pray is not a viable strategy. (Luc Pattyn)
|
|
|
|
|
So I created a dictionary DICTIONARY1
dicFilesDT.Add(dateParts[1], (dateParts[1] + dateParts[2] ));
so that I would have just the:
KEY as the Date and
VALUE as the Date+Time
I need help in making another dictionary (DICTIONARY2) that would
1. If there are no Duplicates from checking DICTIONARY2 using foreach keyvaluepair in DICTIONARY1 add Key Pair to DICTIONARY2
2. Check for duplicates of the Key (Date) (thinking ex. dictionary.ContainsKey)
if the dictionary has the KEY then
Compare the KEY VALUE from DICTIONARY 1 to DICTIONARY 2 to see which one is larger
ex. 230132 compared to 100425
if DICTIONARY1 KEY VALUE is larger Delete KeyValuePair from DICTIONARY 2 and add DICTIONARY 1 KEY VALUE
else do nothing and continue the loop
Thank you folks for helping me wiht this.
|
|
|
|
|
You're making it all way too complex. Here is what I would do (untested!):
string[] files = Directory.GetFiles(S.ImportFolder);
Array.Sort(files);
int count=files.Length;
for(int i=1; i<=count; i++) {
string curr=files[i-1];
string next="_the_end_";
if (i<count) next=files[i];
if (strcmp(curr.Substring(0,curr.LastIndexOf('_')), next.Substring(0,next.LastIndexOf('_'))!=0) {
}
}
Some nasty trick was used to make sure the last file is also included.
|
|
|
|
|
Hi Luc,
I tried the above code, just trying to debug the last line
if (strcmp(curr.Substring(0,curr.LastIndexOf('_')), next.Substring(0,next.LastIndexOf('_'))!=0) {
strcmp is a c++ concept, is that similiar to StringComparer?
also my ide complains !=0 that it cannot be applied to an int and a string. Tried playing around with the brackets and to no function.
let me know what I can do.
|
|
|
|
|
Sorry, my mistake, should not be strcmp, should be string.Compare
|
|
|
|
|
I have a list with 22 instances of this class in it:
public class aspnetRole
{
public Guid? RoleId { get; set; }
public Guid? ApplicationId { get; set; }
public string RoleName { get; set; }
public string Description { get; set; }
public bool IsGlobal { get; set; }
}
There are duplicate entries that I want to remove. I tried this:
List<aspnetRole> RolesNoDups = Roles.Distinct().ToList();
where Roles is the list and RolesNoDups would be the result.
When I run it there are still 22 items in RolesNoDups.
How do I do this?
Everything makes sense in someone's mind
|
|
|
|
|
I don't have Distint on my generate methods.
However, you will most likely need to write a comparer or override the equals method if your class if you want to get the results expected. After all aspnetRole is a class so two instances with the same values are not the same.
|
|
|
|
|
That's what I figured, but I was hoping for a simpler way.
Thanks
Everything makes sense in someone's mind
|
|
|
|
|
This MSDN page[^] says:
Returns distinct elements from a sequence by using the default equality comparer to compare values.
If you want to return distinct elements from sequences of objects of some custom data type, you have to implement the IEqualityComparer<T>[^] generic interface in the class.
DaveIf this helped, please vote & accept answer!
Binging is like googling, it just feels dirtier.
Please take your VB.NET out of our nice case sensitive forum.(Pete O'Hanlon)
BTW, in software, hope and pray is not a viable strategy. (Luc Pattyn)
|
|
|
|
|