|
By all means refer to it, but refer to it on the OP's post. I'm not looking for credit, so I don't mind.
This space for rent
|
|
|
|
|
Member 13218552 wrote: gives a successful message regardless of the real result. That is because you are not checking any result to see if it succeeded. In fact you do not even perform any database function before displaying the message. Assuming that da is a DataAdapter, you should be using the SqlDataAdapter.Update Method (System.Data.SqlClient)[^] to perform your changes and, most importantly, checking the result when the method returns.
|
|
|
|
|
dtjr.DefaultView.RowFilter = " Journal_Name Like '" + cbo_jrnl.Text.Trim() + "*'";
is working fine,
But i want to filter all jounral_name stats with number from 0-9
|
|
|
|
|
And?
What have you tried?
Where are you stuck?
What help do you need?
This is not a good question - we cannot work out from that little what you are trying to do.
Remember that we can't see your screen, access your HDD, or read your mind - we only get exactly what you type to work from. And we have no idea what your "jounral_name stats" are, or what they look like - I assume that's a typo, and it should be "Journal_Name stats" but that doesn't help when you have no idea what it contains or what exactly you are trying to do with it.
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
modified 23-May-17 4:37am.
|
|
|
|
|
You can chain multiple items together in a filter using AND and OR , so one possibility would be to do Journal_Name LIKE '0*' OR Journal_Name LIKE '1*' ... and so on. I'm not saying it's the best option but it is AN option.
This space for rent
|
|
|
|
|
you could try LIKE '[0-9]*'
=========================================================
I'm an optoholic - my glass is always half full of vodka.
=========================================================
|
|
|
|
|
The OP could - personally speaking, I don't use DataTable's
This space for rent
|
|
|
|
|
how to get double click event to be fired on gridview cell in c# as there is no cell doubleclik event
available as in vb.net .
Hence how can i achieve cell_doubleclick event on gridview in c#.
modified 23-May-17 1:01am.
|
|
|
|
|
|
thanks for the reply but data gridview is in vb.net not in c# so i cant use
|
|
|
|
|
No, it's a .NET control, so it can be used by any .NET language.
|
|
|
|
|
m talking about asp.net but u said abt vb.net ..datagrid view control is in vb.net where as asp.net has
gridview as gridview control.
|
|
|
|
|
Mayank Kumar wrote: m talking about asp.net You posted your question in the C# forum and made no mention of ASP.NET, your original question being:
Quote: how to get double click event to be fired on gridview cell in c# so how are we to guess that you are talking about ASP.NET?
I suggest you post a properly detailed question in the ASP.NET forum, with details of what controls you are using and where your problem is.
|
|
|
|
|
apologies, can you answer me the same
|
|
|
|
|
There is no server side event handler for the ASP.NET GridView. You will have to write your own JavaScript code to handle this. You could use this article[^] as a starting point.
This space for rent
|
|
|
|
|
Hi,
I have two JSON objects:
JSON Object 1
[{
"date":
[
"date-value1",
"date-value2,
........ ,
"date-value729"
]
}]
JSON Object 2
{
"data": [
{
"body": [ "body1" ],
"link": "link1",
"title": [ "title1" ]
},
...........
{
"body": [ "body729" ],
"link": "link729",
"title": [ "title729" ]
}
]
}
How can I merge the properties of these 2 JSON objects and have the following example as an output for all 729 records of data:
{
"data": [
{
"body": [ "body1" ],
"link": "link1",
"title": [ "title1" ].
"date": "date1"
},
...........
{
"body": [ "body729" ],
"link": "link729",
"title": [ "title729" ]
"date": "date729"
}
]
}
Examples that I found online are mainly about merging two identical JSON objects.
Thank you in advance for your time and consideration.
|
|
|
|
|
You would need to do it manually. Create a class for each type, and one that contains all the properties. Read the two sets into the first two classes, merge the properties into the third, and create a new JSON stream from that.
|
|
|
|
|
Thanks, it worked as you guided. I thought maybe there is already some sort of online tools to import and export such task.
|
|
|
|
|
Here's one way:
public enum Divisions
{
Undefined,
Admin,
Finance,
Sales,
Research,
IT,
Temp
}
public Dictionary<Divisions, Lazy<List<Person>>> DivisionToStaff { set; get; } =
new Dictionary<Divisions, Lazy<List<Person>>>();
public Initialize()
{
foreach (Divisions div in Enum.GetValues(typeof(Divisions)))
{
DivisionToStaff.Add(div, new Lazy<List<PersonNode>>());
}
}
Do you know a better way ?
thanks, Bill
«When I consider my brief span of life, swallowed up in an eternity before and after, the little space I fill, and even can see, engulfed in the infinite immensity of spaces of which I am ignorant, and which know me not, I am frightened, and am astonished at being here rather than there; for there is no reason why here rather than there, now rather than then.» Blaise Pascal
|
|
|
|
|
I have never used Lazy loading in my own applications, for various reasons.
Anyways, looking at your code, Bill, I can say if I had to implement "lazy" loading like feature here, I would simply just set it to null . In most cases of Lazy loading — for instance, the Entity Framework navigation — the types are null, unless you actually specify to need them. Then, once it is required, I would load the data using the yield operator; giving me somewhat relative of the lazy loading.
But my answers depends on the way you fetch the List<Person> , from database perhaps? I have not yet tried .NET 4.7 by now. Does it include anything new?
Shiv provides a good overview, and to rewrite that in a different way, would require the understanding that he provides here, Can you explain Lazy Loading?
Lazy Loading By Using C# Yield Statements | Freaking Awesome
The sh*t I complain about
It's like there ain't a cloud in the sky and it's raining out - Eminem
~! Firewall !~
|
|
|
|
|
Quote: if I had to implement "lazy" loading like feature here, I would simply just set it to null Hi, Afzaal,
I do not claim to be an expert on Lazy<T>: the question here comes out of my "quest" to better understand it. I would say that you use a Lazy<T> because instantiating one with 'new does not allocate memory for what it wraps. So you can eliminate guard-code like in the 'getter in this Property:
public List<PersonNode> AllNodes
{
get => _allNodes ?? (_allNodes = new List<PersonNode>());
private set => _allNodes = value;
} Even though I have not used the thread-safety features of Lazy<T>, it's clear those features are extensive.
C# 7 ? : still trying to digest it Some well written articles by Jonathan Allen are helping: [^]
cheers, Bill
«When I consider my brief span of life, swallowed up in an eternity before and after, the little space I fill, and even can see, engulfed in the infinite immensity of spaces of which I am ignorant, and which know me not, I am frightened, and am astonished at being here rather than there; for there is no reason why here rather than there, now rather than then.» Blaise Pascal
|
|
|
|
|
I have also not worked too much in this context because most of my data sources are SQL based databases, so I try to load only the data that I require,
SELECT TOP 10 FROM table_name ... That works like a charm in my cases.
BillWoodruff wrote: instantiating one with 'new does not allocate memory for what it wraps Of course, that is why I provided the Entity Framework example, they provide a function Include , which you execute and they then load the rest of the data, until then the objects are null. That EF code, gave me a hint that in most cases I should just leave the objects to null and then yield them when needed; this works in some cases. This yield does somewhat better, as it does provide the objects when we actually iterate over them (use them).
As for C# 7, I just didn't get enough time to actually experiment around with them like I did with C# 6, as I was busy with my final year project and some academics stuff.
The sh*t I complain about
It's like there ain't a cloud in the sky and it's raining out - Eminem
~! Firewall !~
|
|
|
|
|
Not sure if it's better, but something like this might work:
public class LazyDictionary<TKey, TValue> : IReadOnlyDictionary<TKey, TValue>
{
private readonly ConcurrentDictionary<TKey, TValue> _values;
private readonly Func<TKey, TValue> _valueFactory;
private readonly Func<TKey, bool> _keyValidator;
public LazyDictionary(Func<TKey, TValue> valueFactory, Func<TKey, bool> keyValidator = null, IEqualityComparer<TKey> keyComparer = null)
{
if (valueFactory == null) throw new ArgumentNullException(nameof(valueFactory));
if (keyComparer == null) keyComparer = EqualityComparer<TKey>.Default;
_values = new ConcurrentDictionary<TKey, TValue>(keyComparer);
_valueFactory = valueFactory;
_keyValidator = keyValidator;
}
private bool KeyIsValid(TKey key) => _keyValidator == null || _keyValidator(key);
private TValue GetOrAdd(TKey key) => _values.GetOrAdd(key, _valueFactory);
public int Count => _values.Count;
public IEnumerator<KeyValuePair<TKey, TValue>> GetEnumerator() => _values.GetEnumerator();
IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
public IEnumerable<TKey> Keys => _values.Keys;
public IEnumerable<TValue> Values => _values.Values;
public bool ContainsKey(TKey key) => KeyIsValid(key);
public bool TryGetValue(TKey key, out TValue value)
{
if (!ContainsKey(key))
{
value = default(TValue);
return false;
}
value = GetOrAdd(key);
return true;
}
public TValue this[TKey key]
{
get
{
if (!ContainsKey(key)) throw new KeyNotFoundException();
return GetOrAdd(key);
}
}
}
Usage:
public IReadOnlyDictionary<Division, IList<Person>> DivisionToStaff { get; }
= new LazyDictionary<Division, IList<Person>>(d => new List<Person>(), d => Enum.IsDefined(typeof(Division), d));
...
DivisionToStaff[personInstance.Division].Add(personInstance);
ContainsKey will return true for any valid key.
Count , GetEnumerator , and the Keys and Values properties will only reflect the keys which have already been created.
TryGetValue and the indexer will throw an exception for any invalid key; return the existing value for a valid key if it's already been created; and create the value for a valid key if it hasn't.
It has the added advantage of being (mostly) thread-safe.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Wow ! That's the Ph.D. answer. My reading of the Lazy<T> docs suggests its multi-threading features are robust.
thanks, Bill
«When I consider my brief span of life, swallowed up in an eternity before and after, the little space I fill, and even can see, engulfed in the infinite immensity of spaces of which I am ignorant, and which know me not, I am frightened, and am astonished at being here rather than there; for there is no reason why here rather than there, now rather than then.» Blaise Pascal
|
|
|
|
|
The Lazy<T> threading support can be robust, depending on which LazyThreadSafetyMode value you pass to the constructor. (The default is ExecutionAndPublication , which is the most robust.)
But the Dictionary<TKey, TValue> definitely isn't thread-safe if you modify it.
It's not a problem if you're pre-populating the dictionary with a Lazy<T> for every possible key, and never modifying the contents of the dictionary. But if you have a large set of keys, some of which are rarely used, you might want to avoid the memory overhead.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|