|
This is the code that I have, but only Test Case 1 and 4 execute correctly. I have sat here for hours looking through my book and lectures, but I'm just blind to my problem. Thank you, in advance, if you are able to help me!
|
|
|
|
|
Look at your nested if statement 100 meets these criteria 1000, 1000, 800 500 so which value will be returned, the first of course.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Another day, another hint.
If x < 1000 Then
If x < 800 Then
If x > 2000 Then
End If
End If
End If Find me a number smaller than 1000, but larger than 2000.
There's another problem, take a look at the example-rules;
Member 10728667 wrote: Commercial <= 1,000 $0.50 per unit
Commercial 1,000 < $0.50 per unit If think the first price is for commercial stuff if you buy 1000 items or less, and the second price would be if you buy MORE than 1000 items. That's prolly what the position of the operator should imply. Back to the code;
If unitsConsumed <= 1000 Then
costPerUnit = 0.5
If unitsConsumed > 1000 Then
Now that I switched the operator to what it probably should be, does it help to diagnose the error?
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
The easy thing to do is put a breakpoint and then step through your code and you'll see exactly what is happening. It should be very easy to solve at that point.
There are only 10 types of people in the world, those who understand binary and those who don't.
|
|
|
|
|
I have a devexpress Master-View gridcontrol , bound to Entity bindingsource. Programatically I update some records on bindingsource , but the Gridcontrol is not refreshed with new data. I have used the following methods : ( GridviewMaster - is Master View , GridviewChild - is Detail view )
GridControl1.RefreshDataSource()
GridControl1.MainView.RefreshData()
GridControl1.DefaultView.RefreshData()
GridViewMaster.RefreshData()
GridViewChild.RefreshData()
But without success.I know that the bindingsource is updated , but the Gridcontrol is not. Only when i close and open the form again the gridcontrol is updated.
What can I do ? ( without querying the database)
Thank you !
|
|
|
|
|
Hello !
Is there any free Twain for .NET that I can use on a Visual basic 2013 Application ?
Thank you !
|
|
|
|
|
|
Hi guys,
I have the following code that will send an email from Visual Basic project using data from an SQL row called "Email". It works fine. However, it appears it is only showing one email from SQL into the TextBox. Therefore, only sending it to one email address. I have two email addresses stored in the database for testing but only one of them get the email message.
Here is the code:
Dim con As SqlConnection = New SqlConnection("Data Source=.\SQLEXPRESS;Initial Catalog=FigClubs;Integrated Security=True;Pooling=False")
Dim cmd As SqlCommand = New SqlCommand("SELECT Email FROM Members", con)
con.Open()
Dim myDA As SqlDataAdapter = New SqlDataAdapter(cmd)
Dim myDataTable As DataTable = New DataTable
myDA.Fill(myDataTable)
con.Close()
con = Nothing
Try
Dim Smtp_Server As New SmtpClient
Dim e_mail As New MailMessage()
Smtp_Server.UseDefaultCredentials = False
Smtp_Server.Credentials = New Net.NetworkCredential(My.Settings.ClubEmail, My.Settings.EmailPassword)
Smtp_Server.Port = 587
Smtp_Server.EnableSsl = True
Smtp_Server.Host = "smtp.gmail.com"
e_mail = New MailMessage()
e_mail.From = New MailAddress(TextBox4.Text)
e_mail.To.Add(EmailTextBox.Text)
e_mail.Subject = TextBox1.Text
e_mail.IsBodyHtml = False
e_mail.Body = TextBox2.Text
Smtp_Server.Send(e_mail)
MsgBox("Your email has been sent.")
Catch error_t As Exception
MsgBox(error_t.ToString)
End Try
Me.Close()
Any help you can provide with this would be greatly appreciated.
Thanks,
Dan
|
|
|
|
|
Your Select statement extracts the Email fields from your database and fills your DataAdapter. How do the email addresses then get to EmailTextBox ?
|
|
|
|
|
Hi Richard,
I am using the Dataset to populate the EmailTextBox.
Cheers,
Dan
|
|
|
|
|
And what do you see in the textbox at the time you try to create the mail message? It would really help people to help you, if you provided complete details of what you see when you run your code.
|
|
|
|
|
Hi Richard,
Thanks for the reply.
I did mention in my original post that only one of the stored email addresses show in the TextBox.
So basically, when I run the code, only one of the two email addresses in the Database is showing in the EmailTextBox and not the two that are stored.
My plan is to show any amount of email addresses that are stored in the database to be entered into the EmailTextBox when the application is run.
Cheers,
Dan
|
|
|
|
|
OK, and how do you think we can guess why there is only one email address showing? We have no idea what the content of the Email field is, how you are binding from your DataAdapter to your EmailTextBox etc. As I said before, we really need all the information you have, we cannot see what is going on on your screen.
|
|
|
|
|
Hi Richard,
All of the code I am using is placed on this thread. When I execute the code, I see an email form with an email address in the To: box. This is one of the email addresses in my database. It works just fine. However, as I have said, I have more than one email address in the Database but only one shows. I can't see how me providing a screenshot of an email form is going to solve the issue. All I want to know is how to place more than one value from an SQL row into one textbox, preferably so an email message can be sent to more than one email address at a time.
So, if you read my first post in this thread, it explains the issue in detail and provides all of the code I am using.
Thanks.
|
|
|
|
|
Dan O'Riordan wrote: All of the code I am using is placed on this thread.
Clearly not, as you haven't posted any code that would take the email address from the DataSet and put it in the TextBox .
You're going to need to loop through all the rows of the DataSet and join the addresses together with a comma before putting them in the TextBox .
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Hi Richard,
I did mate:
Calls the Data from the DQL Database:
Dim con As SqlConnection = New SqlConnection("Data Source=.\SQLEXPRESS;Initial Catalog=FigClubs;Integrated Security=True;Pooling=False")
Dim cmd As SqlCommand = New SqlCommand("SELECT Email FROM Members", con)
con.Open()
Dim myDA As SqlDataAdapter = New SqlDataAdapter(cmd)
Dim myDataTable As DataTable = New DataTable
myDA.Fill(myDataTable)
con.Close()
con = Nothing
This tells the data to display in the TextBox:
Try
Dim Smtp_Server As New SmtpClient
Dim e_mail As New MailMessage()
Smtp_Server.UseDefaultCredentials = False
Smtp_Server.Credentials = New Net.NetworkCredential(My.Settings.ClubEmail, My.Settings.EmailPassword)
Smtp_Server.Port = 587
Smtp_Server.EnableSsl = True
Smtp_Server.Host = "smtp.gmail.com"
e_mail = New MailMessage()
e_mail.From = New MailAddress(TextBox4.Text)
e_mail.To.Add(EmailTextBox.Text)
e_mail.Subject = TextBox1.Text
e_mail.IsBodyHtml = False
e_mail.Body = TextBox2.Text
Smtp_Server.Send(e_mail)
MsgBox("Your email has been sent.")
Catch error_t As Exception
MsgBox(error_t.ToString)
End Try
It obviously works because one of the emails in the Database is displayed in the TextBox in question and the email is sent without error to this address.
The TextBox for the To: field is bound to the Datatable called Members. In SQL this data has a field called "Email, where I am getting the email addresses from and displaying them into the TextBox.
Me.MembersTableAdapter.Fill(Me.MembersDataSet.Members)
Can you tell me please how to loop it and separate them with Commas? I have searched everywhere for a solution and not getting anywhere.
Thanks.
|
|
|
|
|
So you're using data-binding to move the data from the DataTable to the TextBox ? That's not going to work; a TextBox will only bind to a single record.
You can either remove the binding and loop through the values in code:
string[] addresses myDataTable.Rows.Cast<DataRow>().Select(row => (string)row[0]).ToArray();
EmailTextBox.Text = string.Join(", ", addresses);
Or you can change the query to return a single row with the concatenated addresses in it, using one of these methods[^]:
SELECT Stuff((SELECT ', ' + Email FROM Members FOR XML PATH(''), TYPE).value('.', 'varchar(max)'), 1, 2, '') As Email;
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Thanks Richard. I will see if I can implement one of these methods.
Appreciate your help.
Still new to this so it's all a learning curve.
|
|
|
|
|
Dan O'Riordan wrote: So, if you read my first post in this thread, it explains the issue in detail. Sorry, but it doesn't. Nowhere have you shown how you get the email address(es) from the dataset into the textbox, or how you expect to get more than one email address into the text box. It is still not clear whether the database records contain a single email address for each member record or multiple addresses.
If you have a single email address for each member and you want to send the same message to every member, then you should be using a DataReader to extract the detail from your database. You can then read each record in order and add the email address direct to the SMTP message, without the need for a TextBox .
|
|
|
|
|
Sadly, I think he may be using the designer binding crap. That's the only way I can think of where he doesn't have to write any code to get the data into the controls. It's all done for him in the Designer generated code.
|
|
|
|
|
Hi Dave,
You are correct.
It is easier for us who are not geniuses at the coding side of it and rely on forums like this for some help in learning.
|
|
|
|
|
Two problem with the designer generated stuff is two fold:
1) It hides all the details of what's going on and how to do it from you, thereby keeping everything a "secret". It does nothing to teach you how to do this on your own.
2) In order to understand how to make it work and how to fix problems and adapt it to do the weird stuff, like you're doing, you have to understand how it works under the covers! See point 1.
|
|
|
|
|
Exactly the issues so many developers suffer from these days. Three or four clicks on a Wizard and you have a working application, but absolutely no idea how it works.
|
|
|
|
|
Hi again guys,
I am now using the following For Each in my code. I think this is what you are on about regarding looping. Please set me right if I am off path here.
However, if it is right, I am still only getting one address into the mail.to field.
If CheckBox1.Checked = True Then
For Each dr As DataRow In myDataTable.Rows
mailMessage.To.Add(New MailAddress(dr.Item(0).ToString))
Next
Else
mailMessage.To.Add(New MailAddress(EmailTextBox.Text.Trim()))
End If
Thanks in advance.
|
|
|
|
|
I have just tested something similar, although C# rather than VB.NET and it works correctly. You will need to use your debugger to step through the code and discover why the second item does not get added.
|
|
|
|