2013-11-13 3 views
1

Я не специалист каким-либо образом с C# и asp, но мне удалось сделать это до конца моего сайта и развернуть. Все работает нормально локально, включая соединение MySQL. Однако, когда я подключаю строку подключения, заданную моим хостом, я получаю сообщения об ошибках. Я искал повсюду, чтобы найти решение и даже связался с хозяином, который вообще не помогал. Я так расстроен, и я знаю, что лучшие из лучших здесь. Я уверен, что во всем моем коде есть более чем одна проблема. Я был основным HTML и JS и SQL вплоть до 3 недель назад. Чем вы все.Aspx C# строка подключения MySQL, не связанная с использованием web.Config

Web.Config файл

<configuration> 
    <connectionStrings> 
<add name="mySQLconn" connectionString="DRIVER={MySQL ODBC 5.1 Driver};server=skyhill.ipowermysql.com; user id=skyhillweb; password=******; database=skyhill; OPTION=3;" 
    providerName="MySql.Data.MySqlClient" /> 
    </connectionStrings> 
<system.web> 
    <customErrors mode="Off"/> 
    <compilation debug="true"/> 
    <authentication mode="None"/> 
</system.web> 
<system.webServer> 
    <defaultDocument> 
    <files> 
     <add value="/pages/default.aspx"/> 
    </files> 
    </defaultDocument> 
</system.webServer> 
</configuration> 

Вот страница (только тестовая страница) путь является страницы/abc.aspx именно вы хотите увидеть ошибку.

<form id="form1" runat="server"> 
    <asp:GridView ID="gridAgent" runat="server" AutoGenerateColumns="True"> 
    </asp:GridView> 
    <asp:TextBox ID="MessageBox" runat="server"> 
    </asp:TextBox> 
</form> 

и вот C# позади страницы

using System; 
using System.Configuration; 
using System.Collections.Generic; 
using System.Data; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using MySql.Data.Common; 
using MySql.Data.MySqlClient; 

namespace SkhillWebApp.pages 
{ 
    public partial class abc : System.Web.UI.Page 
    { 

     protected void Page_Load(object sender, EventArgs e) 
     { 
     MySqlConnection conn = new MySqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["mySQLconn"].ConnectionString); 
     string strSQL = "SELECT agentID, FirstName, LastName FROM agent"; 
     conn.Open(); 
     MySqlDataAdapter mydata = new MySqlDataAdapter(strSQL, conn); 
     MySqlCommandBuilder cmd = new MySqlCommandBuilder(mydata); 
     DataSet ds = new DataSet(); 

     mydata.Fill(ds); 

     gridAgent.DataSource = ds; 
     gridAgent.DataBind(); 
     conn.Close(); 
     } 
    } 
} 

И это код, предоставляемый мой хост для подключения к базе данных MySQL.

Start 
<% 
Dim ConnectionString 
ConnectionString="DRIVER={MySQL ODBC 5.1 Driver}; SERVER=skyhill.ipowermysql.com; PORT=3306;" &_ 
"DATABASE=skyhill; USER=skyhillweb; PASSWORD=*password*; OPTION=3;" 
%> 
' End 
+0

Какие _are_ сообщения об ошибках, которые вы получаете? – Brian

+0

Я не уверен, но я думаю, что вы не можете использовать классы MySqlClient с драйвером ODBC. Пробовали ли вы свою оригинальную строку соединения, адаптированную к различным параметрам, предоставляемым вашим интернет-провайдером? – Steve

+0

@Brian благодарит вас за ответ - вот ошибка Ключевое слово не поддерживается. Имя параметра: driver Описание: Необработанное исключение произошло во время выполнения текущего веб-запроса. Просмотрите трассировку стека для получения дополнительной информации об ошибке и ее возникновении в коде. Сведения об исключении: System.ArgumentException: Ключевое слово не поддерживается. Имя параметра: driver – aaron

ответ

0

Ему не нравится параметр «Драйвер» строки подключения, предоставленной вашим хостом. Попробуйте это в своем web.config, адаптированном из соединителя mysql docs.

<add name="mySQLconn" connectionString="Server=skyhill.ipowermysql.com;Database=skyhill;Uid=skyhillweb;Pwd=yourpassword;" providerName="MySql.Data.MySqlClient"/> 
+0

@Brian изменение в Web.Config вернуло эту ошибку. Аутентификация со старым паролем больше не поддерживается, используйте пароли типа 4.1. Описание: Необработанное исключение произошло во время выполнения текущего веб-запроса. Просмотрите трассировку стека для получения дополнительной информации об ошибке и ее возникновении в коде. Сведения об исключении: MySql.Data.MySqlClient.MySqlException: аутентификация со старым паролем больше не поддерживается, используйте пароли типа 4.1. – aaron

+0

@aaron - см. Ответ на сообщение [this] (http://stackoverflow.com/questions/15295541/unable-to-connect-to-remote-mysql-server-in-asp-net) для получения информации об ошибке вы теперь получаете. – Brian

+1

@Brian, ты избил меня на 15 секунд! – scaryman

0

Вы можете использовать старую версию dll MySQL для .Net, это решает проблему.

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