|
hi
does anyone know how i can create a general log eg if i had classes
student: id,name,age
and
teacher: id, name, nation
as you can see the 2 class differs
is it possible to create a table which can save each changes i make like a log?
so that i can see the changes i made.
|
|
|
|
|
Where do you want to save the information and in what format? If you just want general logging of transactions then take a look at log4net Tutorial[^].
Use the best guess
|
|
|
|
|
|
neodeaths wrote: is it possible to create a table which can save each changes i make like a log?
Do you mean an audit log?
If so, are you saving these objects to database already?
If the answer to both these is yes, then you can use database triggers (depending on your database) for each of the CRUD operations. If not, can you let me know what you are trying to achieve.
“Education is not the piling on of learning, information, data, facts, skills, or abilities - that's training or instruction - but is rather making visible what is hidden as a seed” “One of the greatest problems of our time is that many are schooled but few are educated”
Sir Thomas More (1478 – 1535)
|
|
|
|
|
As Richard M. suggests, you need to define what you are logging, what format it's in.
Is the logfile you want to create a time-stamped transcription of events as they happen, like the one log4Net creates ?
Or, is it possible that you actually want to have a persistent set of the "states" of each variable over time in memory ? If so, that means a data-structure ... perhaps a LIFO or FIFO stack ... and controlling the "depth" of how many states are stored.
Do you want to use a robust ready-to-go solution, like log4Net, or do you want to build-your-own limited logging facility ? Do you want to log errors/exceptions ?
“Humans are amphibians: half spirit, half animal; as spirits they belong to the eternal world; as animals they inhabit time. While their spirit can be directed to an eternal object, their bodies, passions, and imagination are in continual change, for to be in time, means to change. Their nearest approach to constancy is undulation: repeated return to a level from which they repeatedly fall back, a series of troughs and peaks.” C.S. Lewis
|
|
|
|
|
hi,
i mean i would like to log successful edits to objects in my application.
does log4net facilitate this?
|
|
|
|
|
neodeaths wrote: is it possible to create a table which can save each changes i make like a log?
You need to differentiate between trace logging and business logging.
Trace logging is output that helps a developer figure out why a production system fails. It exists to solve problems that are unexpected.
Business logging is used by users to figure out what happened, perhaps problems or just validation. It exists to solve problems that are known, for the most part.
The first uses a log library and log files because database failures are something that needs to be trace logged.
The second needs a more formal persistence solution such as a database table
The second probably needs a custom solution depending on business requirements.
The first can use existing libraries. My perception is than log4net is not an ideal solution. The nlog library provides a better solution although even that is not ideal.
|
|
|
|
|
Hello forum,
(sorry if duplicate, I might have post this but cannot find it)
Just created a SL Busines application. In the MYDomainService.cs the default queries are generated.
public IQueryable<dbtable> GetDBTablesCompare()
{
return this.ObjectContext.DBTables;
}
The default returns all columns in the specified table.
I would like to run a script like this:
SELECT * From DBTables A
FULL OUTER JOIN Information_Schema.Columns B ON A.Column_Name = B.Column_Name
AND B.Table_Name = 'FY2007_DATA'
AND B.Table_Schema = 'dbo'
WHERE
A.Table_Schema = 'dbo'
AND A.Table_Name = 'FY2006_DATA'
AND (A.Column_Name IS NULL OR B.Column_Name IS NULL)
Any help will be greatly appreciated
|
|
|
|
|
|
im using a delay on user input
it accept the user input after a second
but whenever it try to do
what it suposed to do it crash
heres my code
{
bool timedOut2 = TBDelay2.EndInvoke(res2);
if (timedOut2)
Dispatcher.CurrentDispatcher.Invoke(
new ActionToRunWhenUserStopstyping2(DoWhatEverYouNeed2),
DispatcherPriority.Input);
}, null);
--
private void DoWhatEverYouNeed2()
{
Random r = new Random();
int n = r.Next();
var page4 = new TabPage(roombox.Text);
tabControl1.TabPages.Add(page4);
tabControl1.SelectedTab = page4;
var browser = new WebBrowser();
browser.Visible = true;
browser.Left = -browser.Width;
browser.ScriptErrorsSuppressed = true;
browser.Dock = DockStyle.Fill;
browser.IsWebBrowserContextMenuEnabled = false;
page4.Controls.Add(browser);
browser.Name = roombox.Text;
page4.Name = roombox.Text;
browser.Navigate("http://www.tinychat.com/" + roombox.Text)
}
|
|
|
|
|
...and the exception message would be ....... ?
and on which line does it throw?
|
|
|
|
|
A first chance exception of type 'System.Reflection.TargetInvocationException' occurred in mscorlib.dll
Additional information: Exception has been thrown by the target of an invocation.
at this line
Dispatcher.CurrentDispatcher.Invoke(
new ActionToRunWhenUserStopstyping2(DoWhatEverYouNeed2),
DispatcherPriority.Input);
|
|
|
|
|
also i just updated my visual studio and i get much better detail about the crash
Cross-thread operation not valid: Control 'tabControl1' accessed from a thread other than the thread it was created on.
|
|
|
|
|
as the first lines of your DoWhatEverYouNeed2 method, use
if (InvokeRequired)
{
this.Invoke(new MethodInvoker(DoWhatEverYouNeed2));
return;
}
|
|
|
|
|
well thx alot now everything works but it still seems to be a quit demanding task
is there any way to relief the pressure or its best to leave it that way
|
|
|
|
|
after trying it heavily everything works smoothly is there any way u could
elaborate on why this code all of suden makes everything work
|
|
|
|
|
You can NOT touch a control from anything other that the thread that created it. The UI (or startup) thread owns the controls and touching them at all (even so much as setting a property value) from anything other than the UI thread will fail with unpredictable results.
|
|
|
|
|
Do some error handling in DoWhatEverYouNeed2() - at least, show the exception message and stacktrace in a messagebox or write them to a log file.
|
|
|
|
|
hi thx for u reply where should i put the exeecption handling
in the code i showed
|
|
|
|
|
In a C# 2010 desktop application, I would like to come up with a test to see if the value 'CUST' is a valid directory level within a directory path supplied to the program. Basically the directory path would look like:
"C:\RData\CUST\Omaha\book.xlsx".
The code I am using the following code, but it is not working:
string filesaveLocation=ConfigurationSettings.AppSettings["Location"];
if (filesaveLocation == "*CUST*").
The value for filesaveLocation is obtained from the app.config file.
Thus can you show me how to change the code listed above, so that I can verify that 'CUST' is one of the directory folder names listed in a file path that looks like "C:\RData\CUST\Omaha\book.xlsx"?
|
|
|
|
|
You can use the String.Contains() method to check the path:
if (filesaveLocation.Contains("CUST"))
Or if character casing matters:
if (filesaveLocation.ToUpper().Contains("CUST"))
Or if you want to check for a directory named "CUST":
if (filesaveLocation.Contains(@"\CUST\"))
Good Luck!
-NP
Never underestimate the creativity of the end-user.
|
|
|
|
|
You can use the function
System.IO.Directory.Exists(myFolderPath) for the same
|
|
|
|
|
Try:
if (filesaveLocation.Contains(@"\CUST\"))
The universe is composed of electrons, neutrons, protons and......morons. (ThePhantomUpvoter)
|
|
|
|
|
Thank you for your replies.
I also have to test to see if the directory file path does not = 'CUST', in the directory path called ""C:\RData\CUST\Omaha\book.xlsx". How would you code that change?
|
|
|
|
|
Uhhhh, you're question isn't really clear, but wouldn't the same test work with just the smallest change??
if (filesaveLocation.Contains(@"\CUST\") == false)
|
|
|
|