2013-06-06 8 views
-1

Здравствуйте, я получаю эту ошибку и не могу понять, что может быть неправильным. Я думаю, что это может иметь какое-то отношение к имени провайдера, но оно бросает мне ошибки.Ошибка строки подключения .. имя поставщика?

Error'ASP.default_aspx»не содержит определение для „SqlDataSource1_Selecting“и нет методы расширения „“SqlDataSource1_Selecting принимать первый аргумент типа „ASP.default_aspx“может быть найден (Вы не нашли используя директиву или ссылка на сборку?)

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
    ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" 
    SelectCommand="SELECT * FROM [John_IEP_Crossing_Dock_Shipment]" 
    onselecting="SqlDataSource1_Selecting"> 
</asp:SqlDataSource> 

это то, что источник данных выглядит. и моя веб-конфигурация выглядит так.

<connectionStrings> 
    <add name="ConnectionString" connectionString="Provider=SQLOLEDB;Data Source=mydatasource;Persist Security Info=True;Password=mypass;User ID=myuser;Initial Catalog=mycatalog" 
     providerName="System.Data.OleDb" /> 
    </connectionStrings> 

мой менеджер соединение выглядит следующим образом

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString); 




    protected void Page_Load(object sender, EventArgs e) 
    { 
     con.Open(); 
    } 

    protected void Button1_Click(object sender, EventArgs e) 
    { 
     SqlCommand cmd = new SqlCommand("insert into tbl values('" + generateidtxt.Text + "','" + hawbtxt.Text + "','" + invrefpotxt.Text + "','" + hppartnumtxt.Text + "','" + iecpartnumtxt.Text + "','" + qtytxt.Text + "','" + bulkstxt.Text + "','" + boxplttxt.Text + "','" + rcvddatetxt.Text + "','" + statustxt.Text + "','" + carriertxt.Text + "','" + shippertxt.Text + "')", con); 
     cmd.ExecuteNonQuery(); 
     con.Close(); 
     Label1.Visible = true; 
     Label1.Text = "Your DATA stored Successfully!"; 
     hawbtxt.Text = ""; 
     invrefpotxt.Text = ""; 
     hppartnumtxt.Text = ""; 
     iecpartnumtxt.Text = ""; 
     qtytxt.Text = ""; 
     bulkstxt.Text = ""; 
     boxplttxt.Text = ""; 
     rcvddatetxt.Text = ""; 
     statustxt.Text = ""; 
     carriertxt.Text = ""; 
     shippertxt.Text = ""; 
    } 
+0

_Java_ и _JavaScript_ похожи на глаза, но на разных языках. Вы правильно отметили этот вопрос? –

+0

@PaulS .: Ни; этот вопрос касается C#. – SLaks

ответ

1

Вашего Web. config определяет строку соединения OleDb (для механизма OleDb), которая использует поставщик OleDb SQL Server для подключения к SQL Server через OleDb.

Ваш код затем передает эту строку соединения в Sql Соединение, которое подключается непосредственно к SQL Server с использованием собственного клиента SQL и использует совершенно другую строку соединения.

Вы должны изменить файл Web.config, чтобы использовать System.Data.SqlClient и его формат строки подключения. (это более эффективно, чем OleDb)

+0

Хм ... ладно. Есть ли способ объяснить, как это сделать шаг за шагом? – user2457203

+1

Измените имя поставщика в Web.config на 'System.Data.SqlClient' и постройте соответствующую строку соединения для SQL-клиента. http://www.connectionstrings.com/sql-server – SLaks

+0

Потому что я использую визуальные студии 2008 с SQL Server 2012. И когда я пытаюсь сделать соединение sql с vs, он говорит мне: «Эта версия сервера не поддерживается .. поддерживаются только серверы до Microsoft SQL Server 2005 ». – user2457203

3

Поскольку ошибка явно состояния, вы не имеете SqlDataSource1_Selecting метода (для обработчика событий onselecting="SqlDataSource1_Selecting")

+0

Что вы посоветуете, чтобы исправить ошибку? Я знаю, что это говорит, я просто не знаю, что с этим делать. – user2457203

+0

@ user2457203 Вам необходимо создать метод 'SqlDataSource1_Selecting' в вашем коде, чтобы он мог быть вызван при необходимости. –

+0

Или не обрабатывайте событие вообще. – SLaks

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