I am tying to read my webconfig file and display in an telerik radgrid.
On page load I am calling this first
Private Sub GetAppSettings()
SectionsTabStrip.Tabs.Item(1).Visible = True
Dim dsAppSettings As New DataSet
Dim dsAppCfg As New DataSet
Dim datAppSettings As New DataTable
Dim column As DataColumn
Dim row As DataRow
column = New DataColumn()
column.DataType = Type.GetType("System.String")
column.ColumnName = "Key"
datAppSettings.Columns.Add(column)
column = New DataColumn()
column.DataType = Type.GetType("System.String")
column.ColumnName = "Value"
datAppSettings.Columns.Add(column)
Dim PrimaryKeyColumns(0) As DataColumn
PrimaryKeyColumns(0) = datAppSettings.Columns("Key")
datAppSettings.PrimaryKey = PrimaryKeyColumns
For index As Integer = 1 To ConfigurationManager.AppSettings.Count
row = datAppSettings.NewRow()
row("Key") = ConfigurationManager.AppSettings.GetKey(index - 1)
row("Value") = ConfigurationManager.AppSettings(index - 1)
datAppSettings.Rows.Add(row)
Next
Dim datCfgSettings As New DataTable
column = New DataColumn()
column.DataType = Type.GetType("System.String")
column.ColumnName = "Name"
datCfgSettings.Columns.Add(column)
column = New DataColumn()
column.DataType = Type.GetType("System.String")
column.ColumnName = "connectionString"
datCfgSettings.Columns.Add(column)
Dim PrimaryKeyColumns1(0) As DataColumn
PrimaryKeyColumns1(0) = datCfgSettings.Columns("Name")
datCfgSettings.PrimaryKey = PrimaryKeyColumns1
Dim line As String
Dim connections As ConnectionStringSettingsCollection = ConfigurationManager.ConnectionStrings
If connections.Count <> 0 Then
For Each connection As ConnectionStringSettings In connections
Dim name As String = connection.Name
Dim provider As String = connection.ProviderName
Dim connectionString As String = connection.ConnectionString
row = datCfgSettings.NewRow()
row("Name") = name.Trim()
line = connection.ConnectionString.Trim()
If connection.ConnectionString.ToUpper.Contains("Password=".ToUpper) Then
Dim index As Integer = 0
Dim index2 As Integer = 0
Dim passlen As Integer
Dim pass As String
index = line.ToUpper.IndexOf("Password=".ToUpper)
index2 = line.Length
passlen = index2 - (index + 9)
pass = line.Substring(index + 9, passlen)
line = Regex.Replace(line, pass, "******")
End If
row("connectionString") = line
datCfgSettings.Rows.Add(row)
Next
Else
row = datCfgSettings.NewRow()
row("Name") = "None"
row("connectionString") = "None"
datCfgSettings.Rows.Add(row)
End If
dsAppSettings.Tables.Add(datAppSettings)
dsAppCfg.Tables.Add(datCfgSettings)
AppSettingsGrid.DataSource = dsAppSettings
AppSettingsGrid.DataBind()
AppSettingsGrid.Visible = True
AppConnSettingsGrid.DataSource = dsAppCfg
AppConnSettingsGrid.DataBind()
AppConnSettingsGrid.Visible = True
Dim mailConfig As System.Configuration.Configuration
mailConfig = WebConfigurationManager.OpenWebConfiguration(_configpath)
Dim mailSettings As MailSettingsSectionGroup
mailSettings = mailConfig.GetSectionGroup("system.net/mailSettings")
Dim datMailTable As New DataTable
column = New DataColumn()
column.DataType = Type.GetType("System.String")
column.ColumnName = "Key"
datMailTable.Columns.Add(column)
column = New DataColumn()
column.DataType = Type.GetType("System.String")
column.ColumnName = "Value"
datMailTable.Columns.Add(column)
row = datMailTable.NewRow
row("Key") = "Host"
row("Value") = mailSettings.Smtp.Network.Host.ToString
datMailTable.Rows.Add(row)
row = datMailTable.NewRow
row("Key") = "Port"
row("Value") = mailSettings.Smtp.Network.Port.ToString
datMailTable.Rows.Add(row)
row = datMailTable.NewRow
row("Key") = "Username"
row("Value") = mailSettings.Smtp.Network.UserName.ToString
datMailTable.Rows.Add(row)
Dim dsmail As DataSet = New DataSet
dsmail.Tables.Add(datMailTable)
MailSettingsGrid.DataSource = dsmail
MailSettingsGrid.DataBind()
MailSettingsGrid.Visible = True
End Sub
Then when I click get appconfig button .
It needs to load into another RadGrid.
Private Sub btnGetAppConfig_Click(ByVal sender As Object, ByVal e As EventArgs) Handles GetAppConfigButton.Click
Dim objStreamReader As New StreamReader(Server.MapPath("../web.config"))
Dim arrText As New ArrayList
Dim index As Integer = 0
Dim index2 As Integer = 0
Dim passlen As Integer
Dim line As String
Dim pass As String
Do While objStreamReader.Peek() >= 0
line = objStreamReader.ReadLine
If line.ToUpper.Contains("password=".ToUpper) Then
index = line.ToUpper.IndexOf("password=".ToUpper)
If line.Contains("network host") Then
index2 = line.IndexOf("""", index + 10)
Else : index2 = line.IndexOf("""", index)
End If
passlen = index2 - (index + 9)
pass = line.Substring(index + 9, passlen)
line = Regex.Replace(line, pass, "******")
End If
arrText.Add(line)
Loop
objStreamReader.Close()
AppWebConfigDataGrid.DataSource = arrText
AppWebConfigDataGrid.DataBind()
AppWebConfigDataGrid.Visible = True
AppConfigPanel.Visible = True
GetAppConfigButton.Visible = False
ClearButton.Visible = True
End Sub
I am getting am getting this error. an item with the same key has already be added. I have 4 grids that display different things on the same page.
After research I finding in the webconfig file as a bunch of
<clear/>
and this is the duplicate
How to fix this.