Avatar billede exceed Nybegynder
15. april 2007 - 20:54 Der er 8 kommentarer og
1 løsning

ASP.NET og MySQL problem

Mit problem er at jeg godt kan connecte til min mysql og faa det hele til at virke fra min localhost, men naar jeg uploader til min side saa fejler den og i trace skriver den det her


trace

ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
  at System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode)
  at System.Data.Odbc.OdbcConnectionHandle..ctor(OdbcConnection connection, OdbcConnectionString constr, OdbcEnvironmentHandle environmentHandle)
  at System.Data.Odbc.OdbcConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
  at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
  at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
  at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
  at System.Data.Odbc.OdbcConnection.Open()
  at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
  at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
  at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable)
  at System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments)
  at System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback)
  at System.Web.UI.WebControls.DataBoundControl.PerformSelect()
  at System.Web.UI.WebControls.BaseDataBoundControl.DataBind()
  at System.Web.UI.WebControls.DetailsView.DataBind()
  at System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound()
  at System.Web.UI.WebControls.DetailsView.EnsureDataBound()
  at System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls()
  at System.Web.UI.Control.EnsureChildControls()
  at System.Web.UI.Control.PreRenderRecursiveInternal()
  at System.Web.UI.Control.PreRenderRecursiveInternal()
  at System.Web.UI.Control.PreRenderRecursiveInternal()
  at System.Web.UI.Control.PreRenderRecursiveInternal()
  at System.Web.UI.Control.PreRenderRecursiveInternal()
  at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

end trace

er ret ny og ved ikke hvad jeg skal stille op.

min code

{
        SqlDataSource Dashdatasource = new SqlDataSource();
        Dashdatasource.ConnectionString = ConfigurationManager.ConnectionStrings["DashConnectionString1"].ToString();

        Dashdatasource.InsertCommandType = SqlDataSourceCommandType.Text;
        Dashdatasource.InsertCommand = "INSERT into News_main (Header, IPAddress, Writer, Text) VALUES (@Header, @IPAddress, @Writer, @Text)";

        Dashdatasource.InsertParameters.Add("Header", TxtHeader.Text);
        Dashdatasource.InsertParameters.Add("Text", TxtNews.Text);
        Dashdatasource.InsertParameters.Add("Writer", User.Identity.Name);
        Dashdatasource.InsertParameters.Add("IPAddress", Request.UserHostAddress.ToString());
        //Dashdatasource.InsertParameters.Add("DateTimeStamp", DateTime.Now.ToString());

        int rowsaffected = 0;

        try
        {
            rowsaffected = Dashdatasource.Insert();
        }
        catch (Exception ex)
        {
            Server.Transfer("News_Problem.aspx");
        }
        finally
        {
            Dashdatasource = null;
        }

        if (rowsaffected != 1)
        {
            Server.Transfer("News_Problem.aspx");
        }
        else
        {
            Server.Transfer("News_Confirm.aspx");
        }
    }
}

end code

db mysql
table News_main

Feltnavn Datatype Kollation (Collation) Attributter Nulværdi Standardværdi Ekstra Handling
  ID int(11)  Nej  auto_increment
  IPAddress varchar(15) latin1_danish_ci  Ja Not logged.
  Writer tinytext latin1_danish_ci  Nej
  Date timestamp  Nej CURRENT_TIMESTAMP
  Header tinytext latin1_danish_ci  Nej
  Text varchar(255) latin1_danish_ci  Nej

end

Og et lille ekstra spQrgsmaal.

kan man bruge asp.net komponenterne create user, login osv sammen med MySQL? hvis ja kan du saa give et eksempel, hvis nej har du saa andet bud paa hvad jeg kan gQre?
Avatar billede arne_v Ekspert
15. april 2007 - 21:21 #1
hvad indeholder din connection string ?

er der installeret MySQL ODBC på dit web hotel ?

(i modsætning til MySQL Connector for .NET som du kan uploade med din app, så
kræver ODBC at det er installeret)
Avatar billede websam Nybegynder
15. april 2007 - 21:29 #2
Umiddelbart har du ikke fået de rigtige ODBC oplysninger fra dit webhotel.

Hvad angår komponenterne du omtaler så er der så vidt jeg ved ikke lavet nogen provider til mysql så det skal du selv kode
Avatar billede exceed Nybegynder
16. april 2007 - 12:48 #3
connection string:    <add name="DashConnectionString1" connectionString="Driver={MySQL ODBC 3.51 Driver};database=hidden;port=0;server=mysql.keep-gaming.com;uid=hidden;pwd=hidden"
    providerName="System.Data.Odbc" />

min webhost er www.unoeuro.com

http://www.unoeuro.com/support.faq.php?f=6&e=11

info fra siden over.

Forbinde til MySQL database? 


Når du skal åbne adgang til en MySQL database, skal du bruge en ADO database connection.
Den kan opstilles som følgende:

<%
SQLserveradr="[mysqlserver]"
SQLdatabase="[mysqldatabase]"
SQLlogin="[brugernavn]"
SQLpassword="password"

Set Conn = Server.CreateObject("ADODB.Connection")

conStr = "driver={MySql};server="& SQLserveradr &";database="& SQLdatabase
conStr = conStr & ";uid="& SQLlogin &";pwd="& SQLpassword & ";OPTION=3"

Conn.Open conStr
%>


OPTION delen af connection strengen kan variere efter i hvilken sammenhæng du skal bruge din connection, normalt er enten 3 eller 16386 anbefalet - læs nærmere her.
Avatar billede websam Nybegynder
16. april 2007 - 16:51 #4
Det er lige det jeg vil frem til du bruger en System.Data.Odbc til at connecte til databasen og det understøtter din host ikke.

Men jeg ved at en af følgende vil virke for dig :

http://www.connectionstrings.com/?carrier=mysql

Så prøv lige det ;o)

/Websam
Avatar billede exceed Nybegynder
16. april 2007 - 17:38 #5
jeg skal ikke aendre noget i min kode for at faa det til at virke bare aendre min connectionstring?

hvis der skal aendres i min code kan du saa ikke lige hjaelpe mig igang eller give mig et link til hvorfra jeg kunne finde noget hjaelp for er lidt lost paa det her omraade (men det kommer jo nok engang).
Avatar billede websam Nybegynder
16. april 2007 - 20:58 #6
Ja din kode skal ligne noget i denne stil :

Driver={MySQL ODBC 3.51 Driver}; Server=data.domain.com; Port=3306; Database=myDataBase; User=myUsername; Password=myPassword; Option=3;

Som vist uder Remote i det link jeg gav dig og dermed noget i denne stil i din kode :

<add name="DashConnectionString1" connectionString="Driver={MySQL ODBC 3.51 Driver}; database=hidden; port=3306; server=mysql.keep-gaming.com; uid=hidden; pwd=hidden" />

Og her skal du så lige sætte dine login oplysninger og domæne oplysninger fra din host ind.

Så må du lige prøve det ;o)
Avatar billede exceed Nybegynder
16. april 2007 - 23:34 #7
ved ikke om det er mig der er dum men problemet er vel at jeg ikke kan bruge MySQL ODBC 3.51? og med min lille viden fatter jeg ikke at faa det her til at virke...
Avatar billede exceed Nybegynder
17. april 2007 - 07:44 #8
hmm
Avatar billede websam Nybegynder
17. april 2007 - 08:14 #9
Her bruger man tid på at hjælpe dig og så tager du selv point !!!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester