2014-02-08 2 views
0

Я пытаюсь предварительно заполнить DropDownList при загрузке страницы. При запуске я получаю сообщение об ошибке, когда ключевое слово DataSource не поддерживается, а строка выделенного кода - это где я объявляю переменную con - As New SqlConnection (CS). в процедуре LoadList. Точная ошибка : Исключение типа «System.ArgumentException» произошло в System.Data.dll, но не было обработано в коде пользователя Дополнительная информация: Ключевое слово не поддерживается: 'datasource'.Заполнение выпадающего списка из проблем с базой данных

Я очень смущен этим и не смог найти эту документацию по этой проблеме. Вот моя разметка web.config, за которой следует код для страницы aspx.vb. Любое понимание будет принята с благодарностью.

Спасибо!

Web Config:

<connectionStrings> 
<add name="GoForGold" connectionString="datasource=local;database=Friends;integrated  security=SSPI"/> 
</connectionStrings> 

aspx.vb:

Imports System 
Imports System.Collections.Generic 
Imports System.Linq 
Imports System.Web 
Imports System.Web.UI 
Imports System.Web.UI.Control 
Imports System.Configuration 
Imports System.Data.SqlClient 
Imports System.Data 

Partial Class _Default 
    Inherits System.Web.UI.Page 

Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load 
    DropDownList1.Items.Clear() 
    DropDownList1.Items.Add("Please Select") 
    DropDownList1.AppendDataBoundItems = True 
    If Not Me.IsPostBack Then 
     LoadList() 
    End If 
End Sub 


Protected Sub LoadList() 
    Dim CS As String=ConfigurationManager.ConnectionStrings("GoForGold").ConnectionString         
    Dim Query As String = "SELECT * FROM Name" 
    Dim con As New SqlConnection(CS) 
    Dim cmd As New SqlCommand 

    cmd.CommandType = CommandType.Text 
    cmd.CommandText = Query 
    cmd.Connection = con 

    Try 
     con.Open() 
     DropDownList1.DataSource = cmd.ExecuteReader() 
     DropDownList1.DataTextField = "First_Name" 
     DropDownList1.DataValueField = "Friend_ID" 
     DropDownList1.DataBind() 
    Catch ex As Exception 
     Throw ex 
    Finally 
     con.Close() 
    End Try 
End Sub 

End Class 

ответ

0

Я считаю, что должно быть два слова, а также для доступа к БД на локальном хосте, он должен сказать 'локальный' вместо «местного»:

<add name="GoForGold" connectionString="Data Source=localhost;Database=Friends;Integrated Security=SSPI"/> 
+0

Только что попробовал, что теперь его говорит следующее сообщение об ошибке. . (возможно, мне нужна помощь при именовании) ** Исключение типа «System.Data.SqlClient.SqlException» произошло в App_We b_4wo4ok12.dll, но не обрабатывался в коде пользователя Дополнительная информация: при установлении соединения с SQL Server возникла связанная с сетью или конкретная ошибка экземпляра. Сервер не найден или не был доступен. Проверьте правильность имени экземпляра и настройте SQL Server для удаленного подключения. (поставщик: поставщик Named Pipes, ошибка: 40 - не удалось открыть соединение с SQL Server) ** – user3288174

+0

Подождите, вы также должны иметь «localhost» вместо «local» – charlesw

+1

'(LOCAL)' или 'localhost' или просто. (a пункт) – Steve

0

Ваша проблема заключается в том, что ваше соединение для Oracle, которая использует Datasource

Sql строка подключения сервера выглядит следующим образом

Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword; 

Для проверки подлинности Windows использовать следующим образом:

Server=myServerAddress;Database=myDataBase;Integrated Security=SSPI 

Или

Server=myServerAddress;Database=myDataBase;Trusted_Connection=Yes 
+0

Если я использую проверку подлинности Windows, могу ли я исключить идентификатор пользователя и пароль и просто иметь адрес сервера и базу данных? Кроме того, будет ли адрес сервера просто моим ip-адресом? – user3288174

+0

Сервер - это ip или имя сервера. С win auth не пытайтесь установить id/password. Вам нужно будет добавить «Trusted_Connection = Yes», ​​я думаю –

Смежные вопросы