Database - Import CSV To Class Structure As The User Defines?
May 28, 2010
I have a contact manager program and I would like to offer the feature to import csv files. The problem is that different data sources order the fields in different ways.I thought of programming an interface for the user to tell it the field order and how to handle exceptions.Here is an example line in one of many possible field orders:
Notice that in one data field "Name" there is a comma to separate last name and first name and in another there is not.My plan is to have a line for each field (ie ID, Name, City etc.) and a statement "import to" and list box with options like: Don't Import, Business>Join Date, First Name, Zip
and the program recognizes those as properties of an object...I'd also like the user to be able to record preset field orders so they can re-use them for csv files from the same download source.Then I also need it to check if a record all ready exists(is there a record for Anson Call all ready?) and allow the user to tell it what to do if there is a record(ie mailing address may have changes, so if that field is filled overwrite it, or this mailing address is invalid,leave the current data untouched for this person, overwrite the rest).
While I'm capable of coding this...i'm not very excited about it and I'm wondering if there's a tool or set of tools out there to all ready perform most of this functionality...
I'm new to VB 2008 after having spent a long time with VB6, so I apologize if this is a stupid question. But I'd really like to have this straightened out.
Let's say I have a pretty large structure that has lots of properties.
Code:
Now say that I want an internal database with about 10 instances of this structure total, describing, say, 10 different products that a store sells. When these values are loaded from a database, they remain totally static. (However, they can be different each time a program loads)
Now say that I have a class. Each instance of this class is a type of that BaseProduct structure. Meaning, each instance of the class pertains to one of the 10 types of products that the store sells. However, this class has additional properties that pertain specifically to each instance, which are not static.
Code:
Now, the problem here is... If I have 200 different transactions, each one contains an instance of BaseProduct. BaseProduct is HUGE, and is largely redundant (only 10 types possible), so I think it's a little silly to include a whole copy of it with EVERY transaction. However, the Transaction class really needs information regarding the base product it pertains to. Is there a way to, instead of declaring a New BaseProduct in the Transaction class, to simply make one of the properties of the Transaction class a pointer to a BaseProduct variable?
In VB6, I would accomplish this by making a BaseProduct(10) array, and then giving each Transaction an ID number referring to an entry in that array. But in VB 2008, using class structure, this is impossible. I can't define the BaseProduct(10) array outside of a class in a namespace, and if I define it in the actual application's form, then the class loses modularity since it relies on the application that's using it.
How can I structure my classes so that the user interfaces though a single class while the supporting classes are hidden from their view? I think its best understood in an example:
Public Class MyInterface Public Economic as EconomicClass Public Sub New() MyBase.New()
[code].....
So you might ask why am I even separating them? It's strictly for others who will be working with this interface. I need to funnel them though a logical structure:
This way everything is already handled for them in the background and they only need to run the method they need. I don't know if I can have it both ways in VB.NET.
I'm having a problem that's driving me crazy; I can't understand how to convert the XML structure into a class structure (that I want to use to hydrate a XML document).
The XML document looks like this:
xml <?xml version="1.0" encoding="utf-8"?> <artists xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/" xmlns="http://www.spotify.com/ns/music/1">
When .Clear() is invoked, is the memory freed up that was allocated when all of the items were added? I need to load several lists of codes from a database depending on the import selected by the user. Each list of codes will be a List(Of String). My idea is that I will load only small strings into a List(Of String) along with a List(Of <class>) for the data I will be validating and manipulating. When I am done, I want all of the data from the Lists to be purged from memory. Will .Clear() take care of that or does the memory still remain allocated and have to be dumped by the OS once memory gets full? (And, incidentally, what causes the OS to decide which memory blocks to dump? FIFO concept?)
There are so many lists, I'm not sure if I just want them sitting in memory or not. Granted, the lists will just consist of a single string value for each code pulled from the database. So there won't be a ton of data, so maybe I could just load all the validation lists at the beginning of runtime and only worry about purging the data List since it will contain between 35-50 "fields" per record and there will be a couple thousand records each import that is run. I don't want my program to actually cause a hit in performance in the long run. I ultimately don't see a problem because I won't be running millions or even hundreds of thousands of records at once, but I just want to be sure.
I need to create a namespace for my database class file, so I can call the database procedures within my webservice module. How can I create a namespace to call that Db class file?
I'm sure there are several ways of achieving my goal but I am after opinions on what you think is the best option. I'm writing a vb.net application which (amongst other thinks) interfaces with media players in the home. Because there are different types of media playersI'm trying to structure it so each type of media player has it's own class which interfaces to a management class which sits on top of all the different devices types.
The device classes are responsible for discovering the phsyical devices and returning that information up to the management class. A device class may be responsible for monitoring 1 or more physical devices so..
Currently, if I have different classes containing functions etc, I would structure them all in the 1 VB file titled whatever the main Class is. For example:
[Code]...
However, the problem with this is the file can become 1000s of lines long making hard to find portions of code. Is there a way I can store SubClass in a file such as MainClass.SubClass.vb so that its easier to locate classes? Or is there a better, more standard, way of doing this?
In a recent project I was working I created a structure in my class to solve a problem I was having, as a colleague was looking over my shoulder he looked derisively at the structure and said "move it into a class". I didn't have any argument for not moving it into a class other than I only need it in this class but this kind of falls down because couldn't I make it a nested class?
This is purely a coding practice question concerning VB.NET structures. Where do you keep one?As an example, I've created a structure for the simple purpose of keeping information organized, I'd like this structure to be stand-alone, not belonging to any class so I wouldn't have to access it through SomeClass.MyStructure but rather simply MyStructure. So, do I keep it in a separate class and import it into my namespace? Do I keep it in a module (Static class, essentially)? Do I just make a separate VB.NET code file and place is there (I would like it to live in a separate file). Just to clarify, I need this structure to be accesses by the whole application, not just a single class.
This is probably a pretty dumb question but I am trying to use the BasicExcel class (from the CodeProject)and it is downloaded as a .cpp and a .hpp file. The project I want to use it in is in VB.NET.
I thought I just have to open the .cpp file in Visual Studio and save it as a vb class but it won't let me.
I have a serializable class and structure I created for an ArrayList to be access within a Web Application. The problem I am having is the count comes back as zero after calling New. I debugged the code and the Arrylist is being populated
I am trying to figure out a class/struture to handle the following JSON format:
{ "ReturnData": [ { "id": "msg2DoesNotExistName",
[Code]......
I may or may not have Data for ReturnData and SetValue (one or both at a minimum). I am trying to let the serializer handle most of the formatting without having to check for empty sections and single-item arrays.
Dim target As Object ' target gets properly set to something of the desired type Dim field As FieldInfo = target.GetType.GetField("fieldName", _ BindingFlags.Instance Or BindingFlags.Public Or BindingFlags.NonPublic) field.SetValue(target,newValue)
This snippet works perfectly IF target is set to an instance of a CLASS.However, if target is set to an instance of a STRUCTURE, the code does not actually change the value of the field. No error, but the value remains unchanged.And, oddly, if I'm stepping through code, watch the SetValue fail to do anything, and immediately go to the Immediate window and type exactly the same SetValue operation, that works.
Edit:
Per request from Jon Skeet, actual code: Private Shared Function XmlDeserializeObject(ByVal objectType As Type, _ ByVal deserializedID As String) As Object[code].....
I am making a class that has a property that I want to be of type System.Drawing.Size. I don't seem to be able to reference system.drawing from within my class, and therefor can't set my property's data type to Size. Anyone know how I might do this?
I have this application that users can make exams that contain exercises of different ... whatever. Anyway when student takes the exam he chooses it from a list and then all exercises are loaded from database. I wanted to make loading process faster by loading only first exercise data and putting others in background thread.
Actually in other parts of this application something like that is done but not by me. Basicaly an api class is built around BackgroudWorker and i can use this class to put certain functions of objects to be executed in background. The idea sounds great but in real life there are some problems with it. For example for historical reasons this application uses global functions and reader and uses global connection to Access database which means if in background something is being fectched from data base and you try to fetch from database in main thread then a „reader is already open" error occurs. To avoid this error if im doing something in main thread and want to fetch some data i have to move my function from main thread into background worker function list. And basically this in my opinion stinks cuz you end up with many delegātes, invoked checking and thre result... I was just thinking that there maybe is another way to allow (maybe with events) not put everything in background in case something is happening in bakcground but rather allow bgworker to finsih current thing, then do my thing and then resume bgWorker and not create havoc in code.
Basically i have to classes - exam and exercise that each implement many interfaces (like IExercise, IExerciseResult, IExerciseYesNo, IExerciseMultipleChoise etc.)And then i have DataBase classes like ExerciseDB, ExerciseResult etc. That have functions that preparē the sql params and call sqlHelper functions.And for example when i load up exam i go throug all exercises and call LoadData function that in turn calls ExerciseDB function selectData and then i put the returned data in Exercise object. And this type of thing of course would producē error if i at the same time would try to register the answer in database for another exercise. Ofcourse i could always check and put this in background... but as i said i'd rather want to work with database from both threads.
I'm about to start translating my vb.net application, and I don't want to use the default methods provided by Visual Studio to do so. I need my application to be very light, and it nearly doubles it size to use the resources option.Therefore, I'm planning to use some thing like a class, of which I would have one instance per language. Since I don't want to distribute language files as separate files (I'd rather have them hard-coded), I would like to find an easy way to check if every field of the class is initialized. I was thinking of something like an Interface, where I would do something like this:
Public Interface Language Dim HelloMsg As String Dim GoodbyeMsg As String End Interface
[code]....
It's obviously not the right way to do it (although I could use properties instead of vars), but I was wondering whether the was a way to have the compiler check that everything is translated and warn about it if not.
Is there any performance hit (or other problem) to creating a lot of class and structure types for a project? I'm not talking about the number of objects existing in-memory during runtime; rather just defining a lot of object types during design time. I find myself making a lot of small classes and structures that are little more than simply packaging a few related variables together.
I'm working on a Unit Conversion Module. I've found several good ideas here, as well as on CodeProject. My code looks very similar to this C# code at (url)
From the following you'll probably gather that I'm pretty new to programming.I've created a Units base class that I inherit to create each unit type.[code...]
I need to create several different Unit types, such as Length, Pressure, etc. This is working well except for one issue. I'd like to be able to change the UnitType, and automatically update the UnitValue. Such that if the Unit object has a value of 1 and a type of Inch, and the type is changed to Cm, the value would update to 2.54.
Something like this.... I've seen examples of this, but the difference here is that, I can't specify the Covert function in my base class because it changes with each new UnitClass I create. [code...]
I tried making the Property UnitType Overridable and creating a new Override Property for UnitType in each UnitClass that I created, but I failed to get that to work.
I'm trying to implement for the first time a library. With the event sub "client_TickPrice" I want to update a textbox. However nothing happens to my form when the "UpdateLast" sub is called from there.? The code was originally inside a Module (not a class like now), and set up as a console application. Probably there is a problem with the way I wrap my code, i.e. use of classes etc. This program is supposed to receive realtime stock/futures price data. Is it still a good way to start this code with the form, or should I make some type of console application?
Public Class Form1 Dim prog As New Program Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load prog.Main() [Code] .....
Is there a way for implementers of an interface where a ReadOnly property is defined to make it a complete Read/Write Property ?
Imagine I define an interface to provide a ReadOnly Property (i.e., just a getter for a given value) :
Interface SomeInterface 'the interface only say that implementers must provide a value for reading ReadOnly Property PublicProperty As String End Interface
This means implementers must commit to providing a value. But I would like a given implementer to also allow setting that value. In my head, this would mean providing the Property's setter as part of the implementation, doing something like this :
Public Property PublicProperty As String Implements SomeInterface.PublicProperty Get Return _myProperty
I can't seem to find a clear answer as to how to import the proper namespace for ReportingService [URL]. I tried to follow the instruction here [URL] but there is no Add Web Service option showing when I create a console application. There is a service account. Should I just use that instead?
Public Class my_class Public Sub my_sub() Dim myvar as String myvar = 10 Session("myvar") = myvar End Sub End Class
Then I have a ASP.NET page with a code-behind file, default.aspx and default.aspx.vb and I want to call my_class. I'm doing the following, but it doesn't work:
I have a class (using a class rather than a structure only because I can set a default field value for the fields I declare in the class) and I'm using a web service that returns information (demographic information) in JSON. I am using LINQ to get the values of each "entry" from the returned list and in that, I have to parse through and pull out the actual data that I want.Here's how I have it doing right now (just a start, there are 44 of them total, thus my question which will follow the code):
Dim returnedStats = From ljo As Linq.JObject In returnedObject.SelectToken("results") ' ' For Each stat As Linq.JObject In returnedStats
After being spoiled for years with C# automatically setting the default namespace for new classes to match my folder structure, I'm wondering if there is any way to get VB.NET to do the same?
I've been aware for awhile that it doesn't do this automatically but I've never really researched alternatives. keep my VB.NET class namespaces in sync with my project folder structures?