|
Select required fields and append in a string variable spreading by coma(,) then it's pass Select Query Command .
|
|
|
|
|
Hey,
i was working on some API for networking when i implemented some sort of logging and Reporting, in certain situations when all of the sudden my Test project in WPF didn't worked as expected. After some debugging i found a Cross-Thread exception that was caused by some bindings. The API is using some High Level of threading and Tasking support.
The problem was that i was attached to a Event that was trigger in a Non-Dispatcher Thread, and inside my ViewModel i did not synchronized the code. The Whole application was still running ( AppDomain had some global exception Handling ) but the point is, this external exception ( as seen from the API side ) had noting to do with the API but prevented it from working by throwing an Exception and stops the execution of the code after the Event Trigger.
I learned due my time as a Developer that some sort of "General" exception catching should be prevented where possible. This does not mean an empty TryCatch block ( What is actually even very Bad ).
So my Question is:
Should i break this Design guide and more, should i catch Exceptions in general when i Invoke an event? The event handler could Throw some exceptions what i do not expect and i should not worry about. And last but not least: If jes, what to do when we catch an event?
|
|
|
|
|
Jean-Pierre Bachmann wrote: should i catch Exceptions in general when i Invoke an event? Nah. If you did and an exception occurs, how would I even know?
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
My problem is about how to call a c# function like this
string Block = "1111111111";
string a = "87654321";
string m = "2222";
string c = "11";
string u = "99";
string v = "00";
byte[] result = W(
SoapHexBinary.Parse(a).Value,
SoapHexBinary.Parse(m).Value,
SoapHexBinary.Parse(v).Value[0],
SoapHexBinary.Parse(u).Value[0],
SoapHexBinary.Parse(c).Value[0],
SoapHexBinary.Parse(Block).Value
);
from VB.NET
Dim Block As String = "AAAAAAAAAA"
Dim a As String = "99999999"
Dim m As String = "3333"
Dim a As String = "77"
Dim u As String = "07"
Dim v As String = "00"
Dim result As String = ""
result = W(a, m, v, u, a, Block)
a, m and Block are not accepted.
I'm not a C# expert so I guess that there is something to be done in order to correctly address strings and arrays between the two languages. Must be kind of basic rule I ignore...
Anybody can help?
Thanks in advance.
Seppax
|
|
|
|
|
|
You're not calling it the same way as the C# code. Without knowing anything about what W is, the equivalent code would be:
Dim Block As String = "AAAAAAAAAA"
Dim a As String = "99999999"
Dim m As String = "3333"
Dim a As String = "77"
Dim u As String = "07"
Dim v As String = "00"
Dim result As byte() = W(
SoapHexBinary.Parse(a).Value,
SoapHexBinary.Parse(m).Value,
SoapHexBinary.Parse(v).Value(0),
SoapHexBinary.Parse(u).Value(0),
SoapHexBinary.Parse(c).Value(0),
SoapHexBinary.Parse(Block).Value
)
modified 19-Dec-14 8:12am.
|
|
|
|
|
Thanks Dave,
W is like below
Public Shared Function W(a() As Byte, m() A s Byte, v As Byte, u As Byte, u As Byte, block() As Byte) As Byte()
It seems to been accepted now exectp getting an error on the
SoapHexBinary.Parse(c).Value[0] param
where 'an identificator is needed for 0'
|
|
|
|
|
Whoops. I forgot to change the square brackets to parenthesis.
|
|
|
|
|
so it's SoapHexBinary.Parse(c).Value(0)
right, you got it, this seems solved.
But now VB.NET is arguing about
a, m and Block...
Dim result As Byte() = W(SoapHexBinary.Parse(a), SoapHexBinary.Parse(m), SoapHexBinary.Parse(v).Value(0), SoapHexBinary.Parse(u).Value(0), SoapHexBinary.Parse(n).Value(0), SoapHexBinary.Parse(Block))
(translated)
Can't convert the type value 'System.Runtime.Remoting.Metadata.W3cXsd2001.SoapHexBinary' into a 1 byte dimension matrix.
Hope you can help again.
Thks
Seppax
|
|
|
|
|
Solved.... had it under the eyes for the whole time...
a, m and Block misse the .Value property!
Dim result As Byte() = W(SoapHexBinary.Parse(a).value, SoapHexBinary.Parse(m).value, SoapHexBinary.Parse(v).Value(0), SoapHexBinary.Parse(u).Value(0), SoapHexBinary.Parse(n).Value(0), SoapHexBinary.Parse(Block).value)
|
|
|
|
|
When i chose a file to up load it says
Object reference not set to an instance of an object. .
protected void DocumentUpload_OnFileUploadComplete(object sender, FileUploadCompleteEventArgs e)
{
if (!e.UploadedFile.IsValid) return;
GridViewDetailRowTemplateContainer container = ((Control)sender).NamingContainer as GridViewDetailRowTemplateContainer;
Int32 index = container.VisibleIndex;
var orderId = Convert.ToInt32(ViewOrdersGridView.GetRowValues(index, ViewOrdersGridView.KeyFieldName));
var fileNumber = ViewOrdersGridView.GetRowValues(index, ElsaConstants.FileNumber).ToString();
var userId = Convert.ToInt32(Session[ElsaConstants.UserId]);
string directory = ConfigurationManager.AppSettings[ElsaConstants.UploadDirectory];
if (!Directory.Exists(directory))
{
Directory.CreateDirectory(directory);
}
string fileType = Path.GetExtension(e.UploadedFile.FileName);
string fileName = e.UploadedFile.FileName.Replace(fileType, string.Format("_{0}{1}", fileNumber, fileType));
string resultFilePath = directory + fileName;
e.UploadedFile.SaveAs(resultFilePath, true);
using (var context = new ELSAEntities())
{
var document = new Document
{
OrderId = orderId,
DocumentPath = fileName,
DateCreated = DateTime.Now,
CreatedBy = userId
};
context.Document.Add(document);
context.SaveChanges();
}
}
modified 18-Dec-14 12:16pm.
|
|
|
|
|
That's a code dump: and it's both rude and unhelpful.
It's rude because it says "I'm too lazy to work out what info you need: my time is far more important than yours"
It's unhelpful because it doesn't tell us anything about where the error is: we need to know which line is finding the error before we get any idea as to what might be causing it.
So edit your question, remove everything except the relevant code fragment, and tell us which line the error is on.
Help us to help you! Would you want to wade through a pile of uncommented code trying to work out where a problem could possibly be?
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
Better!
Now - which line is throwing the exception?
There are still lots of potential candidates, and we can't run your code - so we only get exactly what you tell us to work from.
The original error that you got the message from will specify the file and line number in the file.
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
its this line
Int32 index = container.VisibleIndex;
vs breaks at this point
|
|
|
|
|
So container is null .
This could be either:
((Control)sender).NamingContainer is null
or
it is not a GridViewDetailRowTemplateContainer so the as is returning null
Either way, use the debugger to check which of these is the case.
A positive attitude may not solve every problem, but it will annoy enough people to be worth the effort.
|
|
|
|
|
does this help
System.NullReferenceException was unhandled by user code
HResult=-2147467261
Message=Object reference not set to an instance of an object.
Source=ELSA
StackTrace:
at ELSA.Controls.MyOrders.DocumentUpload_OnFileUploadComplete(Object sender, FileUploadCompleteEventArgs e) in c:\Development\KTech\Code\Elsa\ELSA\Controls\MyOrders.ascx.cs:line 168
at DevExpress.Web.ASPxUploadControl.ASPxUploadControl.OnFileUploadComplete(FileUploadCompleteEventArgs e)
at DevExpress.Web.ASPxUploadControl.ASPxUploadControl.RaiseFileUploadComplete(UploadedFile uploadedFile, String& errorText, String& callbackData)
at DevExpress.Web.ASPxUploadControl.ASPxUploadControl.Validate()
InnerException:
|
|
|
|
|
Not much, but probably that tells us what the problem is - or what you should be looking at.
If the error occurs in this line:
Int32 index = container.VisibleIndex;
The the error (as Matt says) is that container is null.
And from the previous line:
GridViewDetailRowTemplateContainer container = ((Control)sender).NamingContainer as GridViewDetailRowTemplateContainer;
combined with the method signature:
protected void DocumentUpload_OnFileUploadComplete(object sender, FileUploadCompleteEventArgs e) The problem is probably that the sender is a FileUpload Control (or it wouldn't have an OnFileUploadComplete) and that it isn;t contained within GridviewDetailRowTemplateContainer - it's more likely to be in a grid view cell or similar.
So, put a breakpoint on the line:
GridViewDetailRowTemplateContainer container = ((Control)sender).NamingContainer as GridViewDetailRowTemplateContainer;
And look at exactly what sender is, and what it's NamingContainer is.
(It might help if you break it out first and examine each part in turn.)
Control c = (Control)sender);
Object o = c.NamingContainer;
GridViewDetailRowTemplateContainer container = o as GridViewDetailRowTemplateContainer;
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
this is the sender
sender {DevExpress.Web.ASPxUploadControl.ASPxUploadControl} object {DevExpress.Web.ASPxUploadControl.ASPxUploadControl}
|
|
|
|
|
Yes, but it's the container that is getting null - the sender can't be null as it's the class instance that raised the event.
Use the debugger!
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
I am, Im a DBA so I dont know much about this, long story short we hired a programmer and he jump ship on us, so my boss ask me to fix it. I bought Dev express used project converter 14.1. I fixed all the database stuff and i lil code things. th is the last part I need to get working. How should i use the debug it just breaks at the same line>
|
|
|
|
|
It's really easy to do, but it takes a lot of explaining to find the simple way (one click!) if you can't see the screen.
So, we'll do it the slow way, and that'll show you the quick way.
Look at the source, and click on the line you want the breakpoint on:
GridViewDetailRowTemplateContainer container = ((Control)sender).NamingContainer as GridViewDetailRowTemplateContainer;
Look on the menu bar, under "Debug" - select "Toggle Breakpoint" (and it probably has a short cut key, most likely F9, but it doesn't have to be) and look at what happenes to the left hand side of the source code line you clicked on. See the "Red Dot"? That's a breakpoint, and the debugger will stop immediately before it executes that line. Click on the dot, and it goes away.
Now click on where the dot was, and it comes back - that's the quickest way to set or remove a breakpoint: just click on that vertical column, and it'll toggle a breakpoint there.
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
I understand that, my issue is when i breaks what am I looking for?
|
|
|
|
|
Start by looking at sender - what type is it? Which control is it?
Then look at it's NamingContainer is it a GridViewDetailRowTemplateContainer?
If it isn't, then the end result will be null - and you need to look at exactly what it is to find out what the as part should be.
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
it is a GridViewDetailRowTemplateContainer
|
|
|
|
|
The sender is not a Control so you get a null value. Inspect the content of the sender object and match the type in your boxing.
Never underestimate the power of human stupidity
RAH
|
|
|
|