|
First, don't put any code in your Form_Load event. Put that kind of code into it's own method, called something like PopulateEmployeeDGV . You can then call that code form the Form_Load event.
Next, after your call to ShowDialog to get the new employee, call your PopulateEmployeeDGV to refresh the data you have in your code and update the DGV with it.
|
|
|
|
|
Thanks a lot that did the job for me! Will read the guide too, thanks for the link.
|
|
|
|
|
1) From what I can see Linq-To_Sql is using ADO under the hood. is it then just pulling data into DataTables and then converting a DataRow to an entity class?
2) Is EF using ADO Also?
3) How does EF handle changes? Does it track each field's change, mean does it know if a specific property on an entity has changed? Or are changes tracked at the record level? I could use a quick primer on this.
4) I already have a DB and an Entity project which contains POCO's. These classes have no code except for properties, and when I create them, in most cases they match the tables exactly. I've heard that EF entities are bloated and contain a lot od DB code. Can someone enlighten me?
5) is it possible to tell EF to use my POCO's? Does this mean some kind of mapping?
Thank you
If it's not broken, fix it until it is
|
|
|
|
|
1) & 2) Both use ADO.NET behind the scenes. They use ExecuteReader / IDataReader to read the records and convert them into entity objects, which avoids keeping two copies of the data in memory.
3) EF tracks changes at the property level. You can access this information by calling:
DbPropertyEntry entry = context.Entry(yourEntity).Property("PropertyName");
object currentValue = entry.CurrentValue;
object originalValue = entry.OriginalValue;
bool isModified = entry.IsModified;
DbPropertyValues databaseValues = entry.GetDatabaseValues();
object valueCurrentlyInTheDatabase = databaseValues["PropertyName"];
4) & 5) If your POCO classes match the database exactly, and have sensible property names, you should be able to use them without any changes. You might want to mark the properties as virtual , to allow lazy-loading of collections, but you shouldn't need to add any DB code.
If the classes don't match exactly, then you need to set up a mapping. You can either do this by adding annotation attributes to the properties[^] in the class; creating a separate meta-data class with the attributes, and adding the MetadataType attribute to your real class; or using the fluent mapping API[^].
Typically, using the existing POCOs would be as simple as:
public class YourContext : DbContext
{
public DbSet<Foo> Foos
{
get { return Set<Foo>(); }
}
public DbSet<Bar> Bars
{
get { return Set<Bar>(); }
}
}
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Thanks.. Good info
If it's not broken, fix it until it is
|
|
|
|
|
Hello my friends i want to set up a form wich have two texboxes ,the first one for wifi name the second one for password and button of connect wich give a message box if password correct or not
|
|
|
|
|
OK, great. Please, proceed.
You haven't asked a question about what part of this you're having a problem with so you must either be announcing your intentions to the world or asking for permission to do it.
|
|
|
|
|
So this is weird.
I'm trying to manually fiddle with a property of my MS_RequestContext during Controller Activation inside my WebApi's CompositionRoot.
my Create method receives a System.Net.Http.HttpRequestMessage argument.
I can drill down request to grab
request.Properties["MS_RequestContext"]
Properties is a
dictionary<string,object> That object will be an OwinHttpRequestContext at runtime.
But whenever I attempt to cast, so that I can access the properties on the RequestContext, I get a naughty-gram from Visual Studio
(request.Properties["MS_RequestContext"] as OwinHttpRequestContext).Request.Properties;
The error that comes back is:
The type or namespace 'OwinHttpRequestContext' could not be found (are you missing a using directive or an assembly reference?)
Well...OwinHttpRequestContext lives inside the System.Web.Http.Owin namespace. My references are all set up. I even have added a using statement for good measure.
So the crazy part is that if I remove my code that attempts to directly reference request.Properties, but instead set a breakpoint inside my Create method, I can -through a watch- execute
(request.Properties["MS_RequestContext"] as System.Web.Http.Owin.OwinHttpRequestContext).Request.Properties
without issue. I can confirm that I have no problem modifying the properties at runtime through the immediate window.
Why am I not able to perform this same cast at build time?
I've inspected the
HttpContext.Current.GetOwinContext()
for access to the property that I need to manipulate, but it's not available on IOwinContext.
"I need build Skynet. Plz send code"
|
|
|
|
|
I have a very basic xml document :
<language>
<main>
<aboutlink>About</aboutlink>
<registrationlink>Registration</registrationlink>
<loginlink>Enter</loginlink>
</main>
<about>
<description>This site is about friends and games </description>
</about>
</language>
I just want to grab the innerText of the <aboutlink>, <registrationlink> and <loginlink> nodes and assign them to three different Hyperlinks in a web page . So here is what I do (assuming fPath contains the path to this xml ile) :
LanguageDoc.Load(fPath);
XmlNode root = LanguageDoc.DocumentElement;
main = root.SelectSingleNode("/language/main");
HyperLinkAbout.Text = main.SelectSingleNode("aboutlink").InnerText;
HyperLinkRegistration.Text = main.SelectSingleNode("registrationlink").InnerText;
HyperLinkLogin.Text = main.SelectSingleNode("loginlink").InnerText;
What's happening is that after the first call to main.SelectSingleNode ("aboutlink").InnerText (which is successful and gives me the right value to assign to the first hyperlink), the second call returns a null object, so the call to the InnetText method fails and I get an exception.
The element searched for exists in the xml, and I think the XPath path to that element is correct.
So, what's happening ?
|
|
|
|
|
Are you sure it is exactly as you typed it? If the first SelectSingleNode works and the second doesn't, I'm not seeing what the problem is unless your xml is not exactly that way. Xml is case sensitive.
There are only 10 types of people in the world, those who understand binary and those who don't.
|
|
|
|
|
Yes sir I'm sure.
Not to make mistakes, I copy/pasted the element names from the xml to the code.I checked countless times, and tried thousands of possible variations of the code, without any effect.
|
|
|
|
|
The code you've posted works fine for me:
using System;
using System.Xml;
public class Program
{
public static void Main()
{
var LanguageDoc = new XmlDocument();
LanguageDoc.LoadXml(@"<language>
<main>
<aboutlink>About</aboutlink>
<registrationlink>Registration</registrationlink>
<loginlink>Enter</loginlink>
</main>
<about>
<description>This site is about friends and games </description>
</about>
</language>");
XmlNode root = LanguageDoc.DocumentElement;
XmlNode main = root.SelectSingleNode("/language/main");
XmlNode about = main.SelectSingleNode("aboutlink");
Console.WriteLine("About: {0}", about == null ? "NULL" : about.InnerText);
XmlNode registration = main.SelectSingleNode("registrationlink");
Console.WriteLine("Registration: {0}", registration == null ? "NULL" : registration.InnerText);
XmlNode login = main.SelectSingleNode("loginlink");
Console.WriteLine("Login: {0}", login == null ? "NULL" : login.InnerText);
}
}
https://dotnetfiddle.net/DZBjv8[^]
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
so the only reasonable answer is that I have problems in the installation of my framework 4.5 ...
|
|
|
|
|
No, you don't.
The better problem is that the XML file you're looking at has the problem, or the code you posted isn't what you actually have running.
|
|
|
|
|
problems on the xml ?I wonder which kind of problems could they be ... it is such a simple xml....
|
|
|
|
|
Really?
Does your XML file specify an encoding?
Does the file actually use that encoding?
...or are you making assumptions about those things?
|
|
|
|
|
You mean things like the following :
?
in the starting version it was present, but when I removed it to make a test, I noticed no change at all, so I left it out....
|
|
|
|
|
How have you defined the LanguageDoc variable?
What's in the fPath variable?
Are you absolutely certain that the fPath variable points to the same XML document you've posted?
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Here it is :
String LanguageFileName = "\\Language" + Session["Language"].ToString() + ".xml";
fPath = Path.GetDirectoryName(new Uri(Assembly.GetExecutingAssembly().GetName().CodeBase).LocalPath);
fPath += LanguageFileName;
XmlDocument LanguageDoc = new XmlDocument();
The "Language" session variable is passed by another page that redirects to this one: for now it is "English" , so in the end you get LanguageFileName = "LanguageEnglish.xml" and the fPath is where the file actually is .
|
|
|
|
|
Assuming this is an ASP.NET application, I'd be inclined to use Server.MapPath with an app-relative path (eg: "~/Language" + Session["Language"] + ".xml" ) rather than the assembly's CodeBase .
Other than that, I'm struggling to see why your code isn't working.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Richard you didn't try exactly what I did : you loaded the xml as a string .
I did the same thing and it works fine.
Try doing as I do, that is loading a real xml file : I bet it won't work either....
|
|
|
|
|
Nope - loading from an XML file gives the same output:
var LanguageDoc = new XmlDocument();
LanguageDoc.Load(fPath);
XmlNode root = LanguageDoc.DocumentElement;
XmlNode main = root.SelectSingleNode("/language/main");
XmlNode about = main.SelectSingleNode("aboutlink");
Console.WriteLine("About: {0}", about == null ? "NULL" : about.InnerText);
XmlNode registration = main.SelectSingleNode("registrationlink");
Console.WriteLine("Registration: {0}", registration == null ? "NULL" : registration.InnerText);
XmlNode login = main.SelectSingleNode("loginlink");
Console.WriteLine("Login: {0}", login == null ? "NULL" : login.InnerText);
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
That's not an XML document. That's a fragment of an XML document - you're missing the header. Do you have any XML namespaces, or XSD's referenced?
|
|
|
|
|
If you mean the XML declaration (<?xml version="1.0" encoding="UTF-8"?> ), that's not required.
The XML declaration is not required, however, if used it must be the first line in the document and no other content or white space can precede it.
All of the .NET XML libraries will happily parse an XML document without an XML declaration.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
The fact he didn't include this part makes me think that other parts are missing (hence why I raised this). I know the declaration part isn't needed, but if there's any namespace in there, that will be needed.
|
|
|
|