|
Hi Dave...
The code is trying to accomplish the following:
I am a firm believer in ComboBoxes to enter data. Whether you agree with this approach or not, is not the issue. All of my Comboboxes are limit to list – for very good reason. Accordingly, there must be some provision so the user can enter new choices into the database:
Method:
Historically (in VBA in MS Access) my method is pure simplicity: 1 Form, 1 Combobox, 1 Subform (Datasheet view), 1 SQL Table
• The Subform and all of its cells are unbound
• The layouts for the Subform, (Datasource, Number of columns, widths, etc) are set from a single DataTable.
• If the user wants to enter a new “City”, he/she chooses City in main Combobox
• Based on the value of the Combobox, a single record in the Table is accessed.
• This record provides information on how to setup the Subform (the number and widths of the columns, datasource etc)
• All of the existing choices then appear in the subform and the user is then able to make the necessary edits/additions.
Using VB.net: 1 Form, 1 Combobox, 1 Datagrid, 1 SQL Table.
• The Datagrid has no Datasource
• The Based on the choice from the single ComboBox, a SQL Table is accessed.
• This record provides information on how to setup the Datagrid (DataAdapter, DataSource, Stored Procedure, the number and widths of the columns, etc)
• All of the existing choices then appear in the Datagrid and the user is then able to make the necessary edits/additions.
This may sound complicated, in fact, it would be as simple as defining two variables (V1 and V2):
• Where V1 is the name of the DataAdapter.
• Where V2 which is the name of the Dataset.
Declaring these variables along with their appropriate values is easy but it brings me back to my original question… What is the proper syntax?
Me.V2.StoredProcedure.Clear() (Normally would read… Me.NameOfDataSource.StoredProcedure.Clear)
And
Me.V1.Fill(Me.V2.StoredProcedure) (Nomally would read…
Me.NameofDataAdapter.Fill(Me.NameofDataSource.StoredProcedure))
I am not trying to needlessly change a Variable. However, if I can set the DataAdapter, DataSource, columns, etc, for over 25 choices from a single form and a single Datagrid, then I have...
• far fewer controls;
• fewer datagrids (1 vs 25);
• a single place to add/edit Master List choices;
• less code to write/edit/maintain (a single function that contains roughly 25 lines of code)
• BUT the real beauty of this is that if I want to add another ComboBox to my application, I simply add a single record in the SQL Table identifying the appropriate DataAdapter, DataSource, Number and Widths of Columns, etc. I then add or modify a single DataAdapter and I am ‘good to go’
This is why I am wondering about a simple little piece of code although, I guess I could have 25 datagrids layered on the form.
Thanks
Pat
|
|
|
|
|
Capilano wrote:
I am a firm believer in ComboBoxes to enter data. Whether you agree with this approach or not, is not the issue.
Excuse me, but when did I say using ComboBoxes was a bad idea?
Capilano wrote:
Historically (in VBA in MS Access) my method is pure simplicity: 1 Form, 1 Combobox, 1 Subform (Datasheet view), 1 SQL Table
• The Subform and all of its cells are unbound
• The layouts for the Subform, (Datasource, Number of columns, widths, etc) are set from a single DataTable.
• If the user wants to enter a new “City”, he/she chooses City in main Combobox
• Based on the value of the Combobox, a single record in the Table is accessed.
• This record provides information on how to setup the Subform (the number and widths of the columns, datasource etc)
• All of the existing choices then appear in the subform and the user is then able to make the necessary edits/additions.
Using VB.net: 1 Form, 1 Combobox, 1 Datagrid, 1 SQL Table.
• The Datagrid has no Datasource
• The Based on the choice from the single ComboBox, a SQL Table is accessed.
• This record provides information on how to setup the Datagrid (DataAdapter, DataSource, Stored Procedure, the number and widths of the columns, etc)
• All of the existing choices then appear in the Datagrid and the user is then able to make the necessary edits/additions.
This may sound complicated, in fact, it would be as simple as defining two variables (V1 and V2):
• Where V1 is the name of the DataAdapter.
• Where V2 which is the name of the Dataset.
Declaring these variables along with their appropriate values is easy but it brings me back to my original question… What is the proper syntax?
This is what we needed! But, there is no proper syntax. What you want to do is possible, just not how you want to do it. You have to rethink your logic to use collections of objects, like a collection of DataAdapters. It's impossible to use "variable variable names".
A hash table can hold on to all the DataAdapters you want, in a key/value, or in your case, key/object, pair. The key will be the name of the adapter, and the object will, of course, be the dataadapter.
Hashtable Class[^]
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Using variables probably won't work. You might have to resort to the old fashioned Select Case
Select variableName
..case V1
....dataAdapter code
....dataSet code
..case V2
....dataAdapter code
....dataSet code
.
.
.
end select
|
|
|
|
|
In my sql database, it's a binary value, when it binding to datagrid, it shows up "Ture" or "False". How can I change it output to "active" or "inactive"? Is there any way to do it? Thanks.
Lisa
|
|
|
|
|
Can you add a table to your database with the values you want and then join it to your current table(s)in the dataAdapter?
If you can't add the table to the current database, you make a separate database with the new table. I have seen instructions on joining tables from different databases
|
|
|
|
|
|
Hi,
If any body can give me a vb script code for reading all the messages that are there in an IBM MQ queue( of any type), I will be very thankful to you. Scenario is like this - Suppose the application fails and messages are getting logged into the queue, I have to read these logged messages from queue into a text file.
Thanks in Advance
Nasir
|
|
|
|
|
Hello.....
how can i get the MX Entries of a Domain???
Thanks....
|
|
|
|
|
What? Are you talking about DNS records or Active Directory?
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
when i add a record in database the record is added.
but it does not shows the record when i press move next or prev. button. when i close the form and run again then it
display the added record. plz help me
'code
str = "insert into agent(agentid,agentname) values('" & txtagentid.Text & "','"& txtname.Text & "' )"
ds = dbcon.InsertDS(ds, str) 'insert record into database
ds.AcceptChanges()
ds.GetChanges(DataRowState.Added)
MessageBox.Show("One Record Added")
i am software engineer
|
|
|
|
|
Hi
From the code which you have posted it seems that you are updating the dataset. Updating the dataset wont update the database.
when you refresh the form the dataset is loaded again from that database so u dont see the necessary changes in the datagrid.For your requitement why dont you try the Following code
Private WithEvents daemp As New SqlDataAdapter("select * from emp",cn)
'Write this code whereever you are populating the dataset which can
'be a load button
Dim ds As New DataSet
daemp.Fill(ds, "emp")
dgemp.DataSource = ds.Tables(0)
'once u make changes u need to save the chages write this code in \
'next prev pageindexchanged code...also write it in save
Dim dt As New DataTable
dt = dgemp.DataSource
Try
'updating the database with dataadapter using new dataset table
daemp.Update(dt)
MessageBox.Show("update done")
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
'this is event if you insert wrong data
Private Sub daemp_RowUpdated(ByVal sender As Object, ByVal e As System.Data.SqlClient.SqlRowUpdatedEventArgs) Handles daemp.RowUpdated
If e.Status = UpdateStatus.ErrorsOccurred Then
e.Row.RowError = "mandar says error"
e.Status = UpdateStatus.Continue
End If
End Sub
Hope this helps
Mandar Patankar
Microsoft Certified professional
|
|
|
|
|
I have Groupboxes placed on the TabPages of a TabControl in VB.Net. These Groupboxes contal Textboxes to be loaded from a Combo SelectedIndex event. When the choice of the combo is made, the textboxes are filled, but as soon as you move from one tabpage to the other, the contents of the textbox is lost. How can I preserve what has been loaded into these texboxes and work on the form until I apply my insert Command?
Please I need your help
Derick Fontah
|
|
|
|
|
in vb.net,what's significant differences from vb 6.0 and how are powerfull vb.net compared by borland delphi version up to 7.0?
thanks for your comments.
|
|
|
|
|
|
One very significant difference you should be aware of:
VB6 requires you to deploy a minimum runtime file set that is about ~1.5 MB setup file size.
VB.NET requires you to deploy the NET framework which is about ~30 MB setup file size.
Robert
|
|
|
|
|
Still having same problem... Here is a less confusing version I think. I renamed everything back to default (more or less) I am trying to filter my TempData table (MS Access) by a value and have the new data reflected in the MainDataSet1 instance. I know im still far off, but I feel that im getting closer. (Later the fixed string '11x14' will be a variable based on the combobox)
and yes I know that this code doesnt work... that is my problem... its a major hack job
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
OleDbSelectCommand1.CommandText = "SELECT TemplateID, Images, ImageSize, ID FROM TempData WHERE ImageSize = '11x14'"
OleDbSelectCommand1.Connection = OleDbConnection1
OleDbConnection1.Open()
OleDbSelectCommand1.ExecuteReader()
OleDbConnection1.Close()
OleDbAdapter.SelectCommand = OleDbSelectCommand1 '"SELECT TemplateID, Images, ImageSize, ID FROM TempData WHERE ImageSize = '11x14'"
OleDbAdapter.Fill(MainDataSet1.TempData)
End Sub
Any help is appreciated. I WILL learn this or go totally insane.
|
|
|
|
|
I dont care what they say.. hacking code does work!
Sub Picker_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim LicForm As New LicForm()
OleDbSelectCommand1.CommandText = "SELECT TemplateID, Images, ImageSize, ID FROM TempData WHERE ImageSize = '" & LicForm.Aspect & "'"
MainDataSet1.Clear()
OleDbAdapter.Fill(MainDataSet1)
'If LicForm.Aspect = "" Then MsgBox("oops", MsgBoxStyle.Information)
Initialize()
End Sub
Sub Initialize()
Dim ImageList1 As New ImageList()
Dim Counter As Integer
Dim Path As String
ImageList1.Images.Clear()
ListView1.Items.Clear()
ImageList1.ImageSize = New Size(128, 64)
MsgBox(MainDataSet1.TempData.Count, MsgBoxStyle.Information)
For Counter = 1 To MainDataSet1.TempData.Count
Path = MainDataSet1.TempData(Counter - 1).TemplateID
ImageList1.Images.Add(Image.FromFile("C:\Adobe Project\Icons\" & LicForm.Aspect & "\" & Path & ".jpg"))
ListView1.Items.Add(Path)
Next Counter
ListView1.LargeImageList = ImageList1
For Counter = 0 To MainDataSet1.TempData.Count - 1
ListView1.Items(Counter).ImageIndex = Counter
Next Counter
ListView1.View = View.LargeIcon
ListView1.Update()
Me.Update()
End Sub
I just wanted to post this update to say "Yeah!" and so anyone who didnt understand the original question would now maybe see. Thanks again all and I will be here all week long.
and yes there will be further refinements.. this is my initial working copy
|
|
|
|
|
Hi Mike,
A process writes on the log file from the oldest date to the latest.
I have to extract first the latest ( which is at the end of the log)
I have to search for the “warning” or “critical string“
I have a code that reverses the reading of the log file but my problem is, the details next to it was written also in a reverse manner.. like this…
03/03/05 11:34:04:
03/03/05 11:34:04:AC4_PROD_17.XIE1F_LOTSUBPRODUCTHIST. object has grown from 2128 to 2129 extents
03/03/05 11:34:04:AC2_PROD_8.XIE3F_LOTTXNHIST. object has grown from 4700 to 4701 extents
03/03/05 11:34:04:AC2_PROD_8.XIE1F_LOTSUBPRODUCTHIST. object has grown from 5603 to 5604 extents
03/03/05 11:34:04:AC2_PROD_8.XIE2F_LOTPARAMHIST. object has grown from 8351 to 8352 extents
03/03/05 11:34:04:AC2_PROD_8.XIE3F_LOTHIST. object has grown from 3651 to 3652 extents
03/03/05 11:34:04:AC2_PROD_8.XIE1F_ENTITYPARAMHIST. object has grown from 5542 to 5543 extents
03/03/05 11:34:04:ERROR#**** Error: marsprod@cvspwcora010n2:MARS:object_extent_growth:WARNING ERROR
Here’s my code:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim fs As FileStream = File.Open("\\cvspwcora010\d$\oracle\admin\log\oramon_marsprod.log", FileMode.Open, FileAccess.ReadWrite, System.IO.FileShare.ReadWrite)
Dim streamReader As New StreamReader(fs)
Dim stringresult As String = streamReader.ReadToEnd
Dim arLogLines() As String = stringresult.Split(vbNewLine)
Dim i = 0
Dim b = Len(arLogLines(i))
For i = arLogLines.Length - 1 To 0 Step i - 1
' If InStr(arLogLines(i), "WARNING") Or InStr(arLogLines(i), "CRITICAL") Then
Response.Write(" " & arLogLines(i) & " ")
' Response.Write(" " & arLogLines(i) & " ")
' End If
Next
End Sub
anyone? thanks
|
|
|
|
|
You messed up on the For statement. The Step modifier should be just "-1", not "i-1". Your code should look more like this:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim fs As FileStream = File.Open("\\cvspwcora010\d$\oracle\admin\log\oramon_marsprod.log", _
FileMode.Open, FileAccess.ReadWrite, System.IO.FileShare.ReadWrite)
Dim streamReader As New StreamReader(fs)
Dim stringresult As String = streamReader.ReadToEnd
Dim arLogLines() As String = stringresult.Split(vbNewLine)
Dim i As Integer
Dim b As Integer = Len(arLogLines(i))
For i = arLogLines.Length - 1 To 0 Step -1
If InStr(arLogLines(i), "WARNING") Or InStr(arLogLines(i), "CRITICAL") Then
Response.Write(" " & arLogLines(i) & "<BR>")
End If
Next
End Sub
You might also want to consider putting in some Try/Catch blocks around the file stuff in case the file is unavailable for some reason.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
thanks Dave.. always been very helpful..
|
|
|
|
|
I hav a vb source codes which I want to change them into vb.net source code, is there any tools that can help me to do so??? In vb, there was a keyword 'set' and 'let' which cannot supported in vb.net anymore. Can some one tell me what should i use to replace this keywords?? Some portion of the vb code( it is vb code,right) is as below:
<%
Set objInputXMLDoc = Server.CreateObject("Microsoft.XMLDOM")
objInputXMLDoc.load Server.MapPath("doSpellingSuggestion.xml")
objInputXMLDoc.selectSingleNode("//key").Text = Google_Web_APIs_license_key
objInputXMLDoc.selectSingleNode("//phrase").Text = Search_String
%>
and what does <% this mean??? Thank you so much
|
|
|
|
|
Doesn't the VS.NET compiler already do that conversion for you when you open a VB project ? That's what I thought happened.
Christian
I have several lifelong friends that are New Yorkers but I have always gravitated toward the weirdo's. - Richard Stringer
|
|
|
|
|
This is VBScript code you found in a ASP web page. There is no conversion tool that will convert this for you. You'll have to recode the page by hand using VB.NET and ASP.NET, using a Web Forms project.
Set and Let are not needed anymore. (Actually, Let was optional to begin with.) There are no replacement words for them.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Hi there,
I use a Setup-Project to deploy my application. Now i made a new Version - and want to deploy it as update - so i changed the version number in the setup-project -> it changed the ProductCode (absolutely correct) and the upgradecode stays the same (absolutely correct).
Now if I install the new version it overwrites the old version (as it should do) but it creates a second software entry (in "control panel" -> "add remove programs")
does anybody know how to avoid this?
thanks!!
|
|
|
|
|
I just bought a brand new laptop and installed a fresh copy of XP. I have tried a few times now to install VB.net and this same error keeps coming up. What is causing this? These cd's work fine on my desktop but do not work on the laptop. Any help would be great! =Brandon
|
|
|
|
|