|
You already asked that question here [^] five days ago: did the replies you received not help ?
“But I don't want to go among mad people,” Alice remarked.
“Oh, you can't help that,” said the Cat: “we're all mad here. I'm mad. You're mad.”
“How do you know I'm mad?” said Alice.
“You must be," said the Cat, or you wouldn't have come here.” Lewis Carroll
|
|
|
|
|
Hi:
in my winform app i use Emgu get my local video device, and i want list all video device in a listview, not use the index of device.
somebody can help me? thanks!
|
|
|
|
|
|
|
Hi,
I have a datagridview form with two columns that display a text value from a second table in the dataset and set an integer field in the target record based on the text field selected in a combobox.
Those two fields display blanks, always. One can display the appropriate text values with the drop down, but nothing gets set.
What's making me crazy is that that form, if pulled out of the project, made a standalone in its own project, hitting the same database, of identical dataset and everything else I can find, works fine.
Any ideas?
Thank you.
John Malcosky
|
|
|
|
|
I am trying to understand what the issue is - everything is working fine so where is the issue
“That which can be asserted without evidence, can be dismissed without evidence.”
― Christopher Hitchens
|
|
|
|
|
The first thing I would do is to iterate through the source of the datagridview, outputting the results via a debug statement, to be sure that the columns do actually contain data.
“That which can be asserted without evidence, can be dismissed without evidence.”
― Christopher Hitchens
|
|
|
|
|
just a sec...my english is not so good
let me rephrase every thing:
- You have a datagridview with 2 columns.
- Now this datagridview displays a text from a DataSet.
(Till here its fine.)
Quote: and set an integer field in the target record based on the text field selected in a combobox.
- This is confusing
Quote: One can display the appropriate text values with the drop down, but nothing gets set.
What's making me crazy is that that form, if pulled out of the project, made a standalone in its own project, hitting the same database, of identical dataset and everything else I can find, works fine.
You have clubbed so many things in just one sentence. Its hard to simulate what you are saying(It is also my lack of knowledge)but i request you to put forth a simpler version of this question.
Thanks
|
|
|
|
|
I'm new to LINQ / lambda expressions. I have a list of documents that contains a string field for the creation date. What should the where clause look like to return all documents created in a given date range (eg - within the last year)?
|
|
|
|
|
Assuming you mean you have a Doc class like this:
public class Doc
{
public string Title { get; set; }
public string Date { get; set; }
public Doc(string t, string d)
{
Title = t;
Date = d;
}
}
Then it's pretty simple:
List<Doc> docs = new List<Doc>() { new Doc("Title1", "2014-1-10"),
new Doc("Title2", "2013-12-31")};
var inYear = docs.Where(d => DateTime.Parse(d.Date).Year == DateTime.Now.Year);
But personally, I'd store the creation date as a DateTime, rather than a string.
Never underestimate the power of stupid things in large numbers
--- Serious Sam
|
|
|
|
|
Thank you for the reply. Personally, I agree with you on the string as a datetime comment. Unfortunately, this pre-dates me and I guess it makes life easier in other areas of code.
To add a little clarity to my question. I'm looking for a range check, >= startdate and <= enddate?
|
|
|
|
|
littleGreenDude wrote: I guess it makes life easier in other areas of code.
Somehow I seriously doubt that. I have yet to find a single instance of storing a date/time as a string making it easier to do anything date/time related.
It's far more likely that the previous Muppet didn't know what he was doing.
|
|
|
|
|
So either do two checks in one Where:
DateTime earliest = new DateTime(2013, 12, 1);
DateTime latest = new DateTime(2014, 1, 14);
var inYear = docs.Where(d => DateTime.Parse(d.Date) >= earliest && DateTime.Parse(d.Date) < latest); Or do two Wheres:
DateTime earliest = new DateTime(2013, 12, 23);
DateTime latest = new DateTime(2014, 1, 14);
var inYear = docs.Where(d => DateTime.Parse(d.Date) >= earliest).Where(d => DateTime.Parse(d.Date) < latest);
Now go and kick the idiot who decided string is a good storage medium...
Never underestimate the power of stupid things in large numbers
--- Serious Sam
|
|
|
|
|
Hopefully, this will give you some idea as to how to do this:
using System;
using System.Collections.Generic;
using System.Linq;
namespace LinqDateTest
{
class Program
{
private readonly Dictionary<string, MySimpleClass> _mySimpleClasses = new Dictionary<string, MySimpleClass>();
static void Main(string[] args)
{
new Program().AllocAndTest();
}
private int _index = 1;
public void AllocAndTest()
{
Alloc("10/03/2024");
Alloc("10/12/2013");
Alloc("11/12/2013");
Alloc("12/12/2013");
var results = (from p in _mySimpleClasses
let myDate = DateTime.Parse(p.Value.MyStringDate)
where myDate > DateTime.Now.Subtract(TimeSpan.FromDays(100)) && myDate < DateTime.Now
select p.Value).ToList();
foreach (var value in results)
{
Console.WriteLine("Index {0}, Value {1}", value.Index, value.MyStringDate);
}
Console.Read();
}
private void Alloc(string dateValue)
{
_mySimpleClasses.Add(dateValue, new MySimpleClass { MyStringDate = dateValue, Index = _index++ });
}
}
public class MySimpleClass
{
public string MyStringDate;
public int Index;
}
} Saying that, I really wouldn't like to push the idea of using a string to represent the date. If the string value isn't parseable using Parse, the whole Linq query will blow up. A simple extension will take care of this:
public static class DateExtensions
{
public static DateTime ToSafeDate(this string value)
{
DateTime parsedDate;
if (!DateTime.TryParse(value, out parsedDate))
{
parsedDate = DateTime.MinValue;
}
return parsedDate;
}
} This would turn the Linq query into:
var results = (from p in _mySimpleClasses
let myDate = p.Value.MyStringDate.ToSafeDate()
where myDate > DateTime.Now.Subtract(TimeSpan.FromDays(100)) && myDate < DateTime.Now
select p.Value).ToList();
|
|
|
|
|
Hi Gang,
I am having a big brain cramp and cannot find anything on this anywhere. I have a small winforms app that will allow me to create configurations and serialize them to files. The app will read the files from a directory and display them in a datagridview along with a details view for the selected item in the datagrid. I have a binding source and a binding navigator. Here is the issue. Initially there will be no configuration files so the List<Config> will be created but will be empty. This in turn disables the Navigator so the AddNewItem button is disabled so nothing can ever be added. As a work around for now, I create a blank object that has a name <ChangeMe> so that there is at least one record. Having this one record enables everything and it all works great. So my question is, how can I get it to enable when the list is empty?
Thanks!
Mondis
|
|
|
|
|
Is the list empty or is it null? I can see null disabling the navigator but not an empty list. I don't have the time to test it right now.
|
|
|
|
|
The list is empty. I have a local class level variable defined as
List<Config> configs;
In my load routine I initialize it.
configs = new List<Config>();
I then check for config files and add those to the list. If nothing is added then the empty configs list is added to the bindingsource.datasource as
bindingsource.datasource = configs;
The kluge is to add an empty item to the list and everything works,but that doesn't seem right. I can also delete that empty item and the Binding Navigator is still enabled, which doesn't make sense at all.
Thanks!
Mondis
|
|
|
|
|
OK, it was a thought. I still can't test the thing yet. That won't happen until tonight, if things go well.
|
|
|
|
|
No problem, thanks. I am racking my brain over this one. It just doesn't make any sense to me at all. If by some unforeseen reason I find an answer I will post back, but I haven't had any luck in 2 days.
Mondis
|
|
|
|
|
I wrote this line of code this morning and thought it was great. Maybe a bit confusing, but fun
orderItem.ReturnAuthNumber = order.OrderNumber + ++currentReturnAuthCount;
The three + signs in a row make me smile.
Hogan
|
|
|
|
|
Not really the right place for this: this forum is for questions rather than "I like this" type comments.
Why not take it here: http://www.codeproject.com/Lounge.aspx[^] where it might be better appreciated?
Never underestimate the power of stupid things in large numbers
--- Serious Sam
|
|
|
|
|
I was under the thought that the lounge was not for code... I even marked it as a non-question so as not to confuse anybody... Guess I'm the confused one.
Hogan
|
|
|
|
|
The Lounge isn't for programming questions rather than isn't for code: it's for talking rather than coding if you like. If it's a discussion about how it amuses you, then that's fine. If it's about how it works, or how to fix it, then that's a no-no.
This forum is for code - though talking does go on - it's deliberately more technical here.
Never underestimate the power of stupid things in large numbers
--- Serious Sam
|
|
|
|
|
He probably could've chucked this into the Weird and Wonderful too.
"I've seen more information on a frickin' sticky note!" - Dave Kreskowiak
|
|
|
|
|
I thought the Q&A was for questions. This is a 'discussion' board. Seems harsh to me.
Regards,
Rob Philpott.
|
|
|
|