|
This is the code that I am looking to get a Count of complexQuery.
string refName = entity.GetAttributeValue<string>("contractorname");
var complexQuery = (from c in orgContext.CreateQuery<contractorframe>()
join e in orgContext.CreateQuery<dcc_eval>()
on c.ContractorName equals e.RegardingObjectId.ToString()
where e.RegardingObjectId.ToString() == refName
and e.QW Is Not Null)
modified 15-Oct-15 10:27am.
|
|
|
|
|
macca24 wrote: I am looking to get a Count of complexQuery Not sure what you mean by that, but if your complexQuery is already working, then you can simply use the Count() method:
int complexQueryCount = (from c in orgContext.CreateQuery<contractorframe>()
join e in orgContext.CreateQuery<dcc_eval>()
on c.ContractorName equals e.RegardingObjectId.ToString()
where e.RegardingObjectId.ToString() == refName
and e.QW Is Not Null).Count();
You have just been Sharapova'd.
|
|
|
|
|
int complexQuery = (from e in mycontext.CreateQuery<new_eval>()
where e.new_QW1 != null
select e.new_QW1).Count();
if (complexQuery < 1)
{
var newQuery = "HasData";
entity.Attributes.Add("new_testcomplexquery", newQuery);
}
else
{
var newQueryToo = "Blank";
entity.Attributes.Add("new_testcomplexquery", newQueryToo);
}
I want to use the results of complexQuery in an If statement but the value of complexQuery doesnt appear to be getting picked up. Anyone know why?
|
|
|
|
|
I am not sure what you are trying to do, but shouldn't your if condition be reversed? i.e. it "HasData" if complexQuery > 0 and it's "Blank" if complextQuery == 0 . Try this:
if (complexQuery != 0)
{
var newQuery = "HasData";
entity.Attributes.Add("new_testcomplexquery", newQuery);
}
else
{
var newQueryToo = "Blank";
entity.Attributes.Add("new_testcomplexquery", newQueryToo);
}
You have just been Sharapova'd.
|
|
|
|
|
I have a serial port controller (for sensing any object that passes through its transport module) connected to USB. It responses with either 0 or 1 after input command "t" when it senses any dropping or no dropping of object through the transport. The page CshDeposit5 contains the code. Start.xaml is the page the activity starts and ends up in CshDeposit5.xaml. TmpErrorMsg and TmpMsg are the pages to show the user what happened. Everything runs fine for the first time. But when it tries to come to this CshDeposit5.xaml 2nd time it throws exception on the follwoing highlighted codes:
CshDeposit5.xaml.cs
--------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.IO.Ports;
using System.Windows.Threading;
namespace NWCDM
{
public partial class CshDeposit5 : Page
{
private System.Windows.Threading.DispatcherTimer dispatcherTimer = new System.Windows.Threading.DispatcherTimer();
private static int i;
public CshDeposit5()
{
InitializeComponent();
}
private void Page_Loaded(object sender, RoutedEventArgs e)
{
i = Global.xDropTime;
TimeLeft.Text = i.ToString();
dispatcherTimer.Tick += dispatcherTimer_Tick;
dispatcherTimer.Interval = new TimeSpan(0, 0, 1);
Global.xController.WriteLine("t");
dispatcherTimer.Start();
SerialPort sp2 = Global.xController;
sp2.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler );
}
public void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
string indata = sp.ReadExisting();
Dispatcher.Invoke(DispatcherPriority.Send, new Action(() => DoTrans(indata)));
}
private void DoTrans(string x){
if (i >= 0)
{
if (x.IndexOf("1") >= 0)
{
dispatcherTimer.Stop();
Dispatcher.BeginInvoke(new System.Threading.ThreadStart(delegate
{
NavigationService.Navigate(new Uri("TmpMsg.xaml", UriKind.RelativeOrAbsolute));
}));
}
else
{
if (x.IndexOf("0") >= 0)
{
Dispatcher.BeginInvoke(new System.Threading.ThreadStart(delegate
{
NavigationService.Navigate(new Uri("TmpErrorMsg.xaml", UriKind.RelativeOrAbsolute));
}));
}
}
}
}
private void dispatcherTimer_Tick(object sender, EventArgs e)
{
if (i >= 0)
{
if (Global.VarLang == 0)
{
TimeLeft.Text = i.ToString();
}
i--;
}
else
{
dispatcherTimer.Stop();
Global.xController.WriteLine("r");
Dispatcher.BeginInvoke(new System.Threading.ThreadStart(delegate
{
NavigationService.Navigate(new Uri("TmpErrorMsg.xaml", UriKind.RelativeOrAbsolute));
}));
}
}
}
}
modified 14-Oct-15 4:31am.
|
|
|
|
|
Please edit your question, remove the blank lines, add proper indentation, and add <pre lang="c#"></pre> tags around your code to make it more readable, like this:
public CshDeposit5()
{
InitializeComponent();
}
Next, you should use your debugger to identify exactly which variable is null when the exception is thrown.
|
|
|
|
|
NavigationService.Navigate(new Uri("TmpMsg.xaml", UriKind.RelativeOrAbsolute)); throws the null exception. I tried the following,
NavigationService nav = NavigationService.GetNavigationService(this);
nav.Navigate(new Uri("TmpMsg.xaml", UriKind.RelativeOrAbsolute));
where nav variable is shown null.
|
|
|
|
|
So you need to find out why NavigationService.GetNavigationService(this); is returning null rather than a valid object.
|
|
|
|
|
Please note as I mentioned earlier it doesn't thro any null exception 1st time. I get this when CshDeposit5.xaml is called the 2nd time.
How do I find its returning null?
|
|
|
|
|
Unfortunately that is the nature of code bugs, they only happen when you least expect them. The only way to track the problem is by debugging and testing. You should examine all the information in the exception including the stack trace, in order to try and find out what has happened leading up to the error.
|
|
|
|
|
Good day.
Please fix the formatting. It makes it really hard to read, so I have not read through your code.
Anyway, the first thing that comes to mind is check that when you try to navigate to a XAML page a second time, the
NavigationService.Navigate method already has the page you are trying to navigate to in memory.
Something similar happened to me quote some time ago.
I fixed it by first checking if the page I wanted to navigate to was not already loaded into the NavigationService. If it was, I didn't do anything, else let the Navigation proceed.
Hope that helps.
Neill
|
|
|
|
|
How do I check if the page is already loaded or not in WPF?
|
|
|
|
|
Its been a while but a quick search leads me to using CurrentSource of the NavigationService.
Something like:
NavigationWindow.CurrentSource.ToString());
|
|
|
|
|
Currentsource property not available
|
|
|
|
|
Like I said, its only a possibility that that is causing your problem.
Do some research to try and figure out how to get the CurrentSource, we can't do everything for you.
Neill
|
|
|
|
|
It means you don't have any clue to suggest. Thanks anyways.
|
|
|
|
|
After reviewing some more, it is quite likely that the code is losing reference to the NavigationService object due to DoTrans() being run on a different thread.
But hey, maybe I just don't have any clue to suggest.
Good luck in finding the problem.
Neill
|
|
|
|
|
I have the following code To get the prime numbers between a range of numbers, is this the best and fast method?
int[] NumberCollection = Enumerable.Range(startNum,Count).ToArray<int>();
string primeNumbers = string.Join(",", from number in NumberCollection
where (IsPrime(number)==true)
select number);
Where :
startNum is the starting number
Count is the number of numbers in the collection
IsPrimeis defined as follows:
private static bool IsPrime(int number)
{
for (int i = 2; i < number; i++)
if (number % i == 0) return false;
return true;
}
sujith karivelil
Microsoft Technology Associate
|
|
|
|
|
No.
For starters, your loop is going to check each and every possible divisor from 2 on up: so if the number is 13, it will check 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12.
Since you checked 2 to start with, it can't be divisible by any other even number - so why check them?
Then you would check 2, 3, 5, 7, 9, 11
But...since it's not divisible by 2, it isn't divisible by any number greater than number / 2 so why check 7, 9, 11?
Two simple changes, and you reduce the number of loops from 12, to 3...
I'd suggest that you tart by doing some reading: https://en.wikipedia.org/wiki/Primality_test[^] - there are much more efficient methods.
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
Ya, that's fine and good suggestion
sujith karivelil
|
|
|
|
|
In an existing C# desktop 2010 application, I need to have two or more users share the same computer. The users will run the same desktop application but have access to different files and folders on the network share. Each person will have their own unqiue config file to show what files they have access to. Each person has their own Access 2013 database files. That is one of the files the users have access to.
Based upon what I have said, I have the following questions to ask:
1. Will I need separate installs of the application on the same computer? Part of the install process includes placing the app.config file in the correct location. If so, can you tell me what I need to do for the separate installs?
2. If I do not need separate installs, what should I do about the separate app.config files? Each person's config file will point to files they directly have access to. I do not want each person to access the other person's config file.
|
|
|
|
|
1. No, you should only need one install of the application. However each user will need their own app.config file so the application knows which files to access.
2. See 1. Alternatively you could put information in the app.config file to identify which files/directories to associate with which user.
|
|
|
|
|
|
class Program
{
static void Main(string[] args)
{
if (args.Length > 0)
{
var v = File.ReadLines("dictionary.txt");
var v1 = args[2];
var v2 = args[3];
var first = v.Where(w => w == v1).First();
var last = v.Where(w => w == v2).First();
var l = Array.IndexOf(v.ToArray(), first);
var l2 = Array.IndexOf(v.ToArray(), last);
var l3 = l2 - l;
var results = v.Skip(l).Take(l3);
foreach (var result in results)
{
Console.WriteLine(result);
}
}
else
{
Console.ForegroundColor = ConsoleColor.DarkRed;
Console.WriteLine("Arguments invalid");
}
}
}
|
|
|
|
|
Member 12055749 wrote: Bugging me on a forum.
Member 12055749 wrote: It is bad.
Member 12055749 wrote: how could you improve this implementation? Verify if there's a third argument on the commandline before accessing it, replace the "var" declarations with something descriptive, and add exception handling and logging. I would also check the validity of the arguments at the start, and throw an exception if they are invalid, as opposed to using an else statement. And get rid of variable names like "v1".
Member 12055749 wrote: Using a unit-test?
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|