Answered by:
vb.net web form using string and unique objects

Question
-
User-127506019 posted
In a vb.net 2010 web form application, I am trying to determine the best way to accomplish this goal.
Write now 1 letter is generated and sent to one guardian. However this application needs to be
changed so that the same exact letter can be send to different mailing addresses since each studnet
may have more than one parent/guardian at different mailing addresses. So basically I want to generate
more than one letter with the same wording. The only differences between the letters would be the mailing
addresses. I want the letters to be written to the same varchar(max) column in a sql server 2012
database. The letters will be in the same field since the data will be sent to a sql server reporting
server where the letters will be generated one after each other.Right now the letters are written to the 'Dim _al As Letters = New Letters()' object. The only way I know to modify
text data is to use a string or stringbuilder objects. I do not know yo modify data is other objects. Basically I
want to use a string.replace logic to replace the addresses in the second letter. I also want to use
stringbuilder.append to place more than one letter following another to be placed in the osne varchar(max)
field.I know I can use the following code to convert a custom object to a string.
Dim _LetterStr As String = String.Empty
Dim _LetterStrbldr As StringBuilder = New StringBuilder
_LetterStr = _Letter.Letter.ToString()However I do not know how to convert a string object back to a custom object.
Here is the original code of the application:
#Region "Protected Sub btnSubmitModifiedLetter_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSubmitModifiedLetter.Click" Protected Sub btnSubmitModifiedLetter_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSubmitModifiedLetter.Click Dim _al As Letters = New Letters() Dim _infinteCampusText As String Dim _Letter As Letter = New Letter() Dim _startDate As DateTime = Now() Dim _term As Integer = 0 _Letter.SchoolYear = _schoolyear _Letter.Term = _term _Letter.Milestone = ddlMilestone.SelectedValue _Letter.SchoolNumber = Right("000" & ddlSchools.SelectedValue,3) _Letter.Printed = "Y" _Letter.Letter = reLetterEditor.Content _Letter.StudentLink = Right("0000000" & txtStuLink.Text, 7) _Letter.Language = txtLanguage.Text _infinteCampusText = _al.BuildText(_Letter) _al.InsertData(_Letter, _infinteText) btnProcessSelections.Visible = False gvLetters.DataSourceID = String.Empty gvLetters.DataBind() gvLetters.Visible = False Response.Redirect("letter.aspx?schoolyear=" + _Letter.SchoolYear.ToString() + "&schoolnum=" + _Letter.SchoolNumber.ToString() + "&term=" + _Letter.Term.ToString() + "&milestonecode=" + _Letter.Milestone.ToString() + "&startdate=" + _startDate.ToString() + "&enddate=" + DateAdd(DateInterval.Day, 1, Today()).ToString() + "&language=ALL&studentlink=ALL") End Sub #End Region
Thus can you show me the code to convert a string object to a custom object and/or show me code on how to accomplish my goal?
Saturday, November 19, 2016 4:06 AM
Answers
-
User-1838255255 posted
Hi peggy_girl,
According to your description, as far as I know, you can use JSON string, .NET provide method convert JSON string to custom class object. Here is sample code:
public class User { public User(string json) { JObject jObject = JObject.Parse(json); JToken jUser = jObject["user"]; name = (string)jUser["name"]; teamname = (string)jUser["teamname"]; email = (string)jUser["email"]; players = jUser["players"].ToArray(); } public string name { get; set; } public string teamname { get; set; } public string email { get; set; } public Array players { get; set; } } // Use private void Run() { string json = @"{""user"":{""name"":""asdf"",""teamname"":""b"",""email"":""c"",""players"":[""1"",""2""]}}"; User user = new User(json); Response.Write("Name : " + user.name); Response.Write("Teamname : " + user.teamname); Response.Write("Email : " + user.email); Response.Write("Players:"); foreach (var player in user.players) Response.Write(player); }
Best Regards,
Eric Du
- Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
Tuesday, November 22, 2016 2:32 AM