|
Hello all, I'm using VB.NET 2003 Window Form to do some simple application. I found a problem on setting a global database connection string. How should I code it if this connection string might be change like from localhost to a Server or vice versa? This windom application may used MySQL or even MS SQL database for database as well. Anyone have this kind of solution here?
I read some article told me to put inside a module for this,but how can I do it?
This is my current testing connection which connected to my localhost MySQL database which is running perfectly in my development stage now.
Dim ConnString As String = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=test;UID=root;PASSWORD=;Option=3;Port=3399;"<br />
Dim Objconn As New OdbcConnection(ConnString)<br />
Dim ObjComm As New OdbcCommand
Hope someone can give me a solution here. Thank you for reading.
|
|
|
|
|
I'm not sure what you're asking. IF you want to be able to change it later, put it in your app.config so a user can modify it, and have all code read it from there.
Christian Graus
Please read this if you don't understand the answer I've given you
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|
Sorry,I'm asking how to declare a connection string which is used for my window form application. Please correct me if my idea was wrong. Is that the app.config file is just used for web based like ASP.NET for connection? I'm using window form here. Please give me some example how to do this.
For detail explanation,my application allowed the user to connect to localhost database or a Server database by pointing to a different IP address. How can I do this??
Regards
Drex
|
|
|
|
|
drexler_kk wrote: Is that the app.config file is just used for web based like ASP.NET for connection?
No, you are thinking of the web.config. You have an app.config in your project which is turned into <yourappname>.config when it is built.
Then you read values in code with this sort of thing:
string value = ConfigurationManager.AppSettings["connectionString"];
Christian Graus
Please read this if you don't understand the answer I've given you
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|
Wow..Thats so easy for this code. Thank you for your solution. I have got what you mean now. Thank you so much Christian Graus.
Happy Coding everyone~!
|
|
|
|
|
You do realise that for each different server/database type you will need a different connection string.
The module you mentioned in your OP is the Data Access Layer (DAL), I recommend that you research this as it is the most common solution to your problem.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
I have been working on migrating a old ASP app to asp.net and the VBScript block that calls a DB2 stored procedure looks like this:
oCmd.Prepared = true
Set oParam = oCmd.CreateParameter("RETURN", adsmallInt, 3, 2, 0)
oParam.Precision = 4
oParam.NumericScale = 0
oCmd.Parameters.Append oParam
ExecuteCmd oCmd
oRsReturn = oCmd.Parameters
If someone can tell me how to convert the code to VB.Net that would be great, I don't seem to find the equivalent of the first line and the last line and I don't know how to create similar parameters.
Thanks for reading!
|
|
|
|
|
Well, you will use the OleDBSQL classes to do this. There won't be a one to one mapping of methods, I don't think.
Christian Graus
Please read this if you don't understand the answer I've given you
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|
I am trying to print out labels from inside a piece of screen area. My IDE doesn't like vbmillimeters (I am using visual basic 9). Anyone know how I can scale my output?
Example:
Printer.ScaleMode = ScaleModeConstants.vbMillimeters
Printer.FontSize = 16
Printer.FontBold = True
-Live long and prosper
|
|
|
|
|
winsane wrote: My IDE doesn't like vbmillimeters
What do you mean ? What are vbMillimeters ? Doesn't the IDE auto complete tell you what your options are ?
Christian Graus
Please read this if you don't understand the answer I've given you
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|
hi
can you help me i have in one of my forms small Arrow in the solution explorer and when i move my project to other computer it can not open the designed and it give error massage that it not found
how can i remove it
please help
|
|
|
|
|
The little triangle with an exclamation point (not an arrow), that the file is listed in the project, but it's not found on the disk where it is expected to be. All you have to do is remove the file from the project and re-add it, if you can find it, or copy the file to where the project expects it to be.
There may be missing files that you don't know about either. For instance, under 2005, a normal Windows Form has, usually, three files associated with it, A formName.Designer.vb file, formName.resx, and formName.vb. If any of these files are missing, you'll get the little yellow triangle.
|
|
|
|
|
i do it but it steal exist
and all the three file are exist in the project folder
|
|
|
|
|
You're missing a file somewhere. At the top of the solution explorer window, there is a button, I think it's the second form the left, that says "Show All Files" when you have the mouse over it. Click on that button and you should be able to see exactly which files are missing.
Now, you have to check to see where the files are. You may have them, but they are probably not in the correct folder. If you open the folder that .SLN file is in, you should see something like this:
ProjectName
|
+--ProjectName.sln
+--ProjectName.suo
+--ProjectName (folder)
|
+--ProjectName.vbproj
+--ProjectName.vbproj.user
+--Form1.Designer.vb
+--Form1.resx
+--Form1.vb
+--bin (folder)
+--My Project (folder)
+--obj (folder)
If, for instance, you have the project files in the wrong folder, or not in a subfolder like this, but the solution file expects it, you'll get this problem.
|
|
|
|
|
thanks
but i found all the files with an exclamation point is their a way to know the path of the folder becase i copy it befor this time and but it in my disk top after that the exclamation point aper
but i am sure that all the files in the right folder
|
|
|
|
|
asha_s wrote: but i am sure that all the files in the right folder
The solution explorer is telling you otherwise. I've already given you the folder structure of a normal VS2005 solution. If the structure doesn't match up, you've got the files int the wrong places, or you've renamed folders when you shouldn't have. The folder names are very specific and buried in the .SLN and .VBPROJ files. The paths listed in the .SLN file are relative to the folder that contains the .SLN file. Likewise, all the paths listed in the .VBPROJ file are relative to the folder that contains the .VBPROJ file.
You have a few choices at this point.
Create a blank Windows Forms project and save it, examining the .SLN and .VBPROJ files for how the path names look, comparing them to the folder structure you see on disk. Then, compare what you've seen to what you see in your projects .SLN and .VBPROJ files.
Use the existing project and remove all the files from the solution in the solution explorer, then re-add each of your code files on disk back into the solution explorer.
Scrap this entire folder and re-copy the entire solution folder from the original source.
|
|
|
|
|
thanks it work
|
|
|
|
|
Hi,
I'm using vb 2005.
I'm making a test project to try some things out but having problem that I have a DataGridViewComboBoxColumn binded to a child table and then adding that column to a DataGridView. The column doesn't show the data from the child table until I tripple click the column. The data is the correct data though.
Details:
I have three tables that are related.
Parent table called Customers table with cust_id as PK
Orders table with order_id and foreign key being cust_id
Prices table with FK of order_id.
This is the code I used to bind the DataGridViewComboBoxColumn
Dim priceComboBoxColumn As New DataGridViewComboBoxColumn<br />
<br />
With priceComboBoxColumn<br />
<br />
.HeaderText = "price"<br />
.DataSource = priceBindingsource<br />
.DisplayMember = "price"<br />
.DataPropertyName = "price"<br />
.ValueMember = "price"<br />
.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing<br />
.Visible = True<br />
' .DisplayStyle = DataGridViewComboBoxDisplayStyle.ComboBox<br />
<br />
<br />
End With<br />
<br />
dgOrders.Columns.Add(priceComboBoxColumn)
I have two pictures here to show what I mean
http://www.matcmp.ncc.edu/~steve/vb/
Any help would be greatly appreciated.
Thanks
|
|
|
|
|
It's strange that you're using a Combo to show/pick the price of a product.
Normally, a combo is used to pick from a standard list of items where the ID of an item in the list corresponds to an ID column in another table. For example, a list of team IDs and Names in one table and a schedule table, listing two teams ID's, instead of names. The combo would show you the team names (DisplayMember), but the value (ValueMember) of each name in the list returns that teams ID. This ID would be populated into the schedule table (DataPropertyName).
For this to work you need two binding sources. One bound to the schedule data and one bound to the team data. For example, there are two BindingSources, one called MasterScheduleBindingSource, which the DataGridView is bound to is bound to a table containing the data for the schedule, and a second TeamsDataBindingSource, which will be used by the combo and is bound to a table with TeamId's and names.
Dim comboColumn As New DataGridViewComboBoxColumn
With comboColumn
' Column header that shows up in the DataGridView
.HeaderText = "Home Team"
' This is the column name in the MasterScheduleBindingSource where team ID's are going to get stored.
.DataPropertyName = "HomeTeamId"
' This is the binding for the combo to it's data
.DataSource = TeamsDataBindingSource
.ValueMember = "TeamID"
.DisplayMember = "TeamName"
End With
MyDGV.Columns.Add(comboColumn)
|
|
|
|
|
I do have two binding sources.
One binding source for orders and one for prices.
I used a combobox so user can select a price from available prices but I'm open to suggestions for other controls to use.
|
|
|
|
|
SteveNY wrote: I do have two binding sources.
One binding source for orders and one for prices.
Then you've got something else set somewhere or some other code you haven't shown us screwing this up for you.
SteveNY wrote: I used a combobox so user can select a price from available prices but I'm open to suggestions for other controls to use.
Normally, a textbox does this. You usually don't find a one-to-many relationship between products and prices.
|
|
|
|
|
I think you're misunderstanding my problem.
It's not that the data isn't showing up. It's the fact that I have to click the column multiple times in order for the data to show up.
My code to initialize the column is the same as you've posted.
I made a separate demo app to show what I mean.
I put a datagridview on an empty form and in the form's load event I have this code:
<br />
<br />
Dim nameComboBoxColumn As New DataGridViewComboBoxColumn<br />
<br />
With nameComboBoxColumn<br />
<br />
.HeaderText = "names"<br />
.Items.Add("john doe")<br />
.Items.Add("jane doe")<br />
.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing<br />
<br />
<br />
End With<br />
<br />
DataGridView1.Columns.Add(nameComboBoxColumn)<br />
<br />
When the app loads the data is not shown in the column until I click the column.
|
|
|
|
|
SteveNY wrote: It's not that the data isn't showing up. It's the fact that I have to click the column multiple times in order for the data to show up.
I understand that. Since there isn't enough information to figure out what you did wrong, I supplied the template of how to do it right.
SteveNY wrote: I made a separate demo app to show what I mean.
I put a datagridview on an empty form and in the form's load event I have this code:
... When the app loads the data is not shown in the column until I click the column.
I can't duplicate the problem. There's something else you're doing that you haven't mentioned.
|
|
|
|
|
|
Your example shows the expected behavior. Since the cell doesn't have a value yet (DbNull,) one isn't selected in the ComboBox.
|
|
|
|