trexterMedlem sedan mars 20021 889 inlägg Eftersom mitt Access har flippat ur, har jag försökt byta DBMS till MySQL. Jag ska göra en enkel gästbok och får med nuvarande kod felet:
ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: Microsoft.Data.Odbc.OdbcException: ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
Source Error:
Line 15: GBentries objGBentries = new GBentries(MyConString);
Line 16:
Line 17: DataGrid1.DataSource = objGBentries.getGBentries();
Line 18: DataGrid1.DataBind();
Line 19: }
Så här ser code-behinden till default.aspx ut:
//default_cb.cs
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using guestbook;
public class DefaultCodeBehind : Page
{
public DataGrid DataGrid1;
public void Page_Load(object source, EventArgs e)
{
try
{
string MyConString = "DSN=myODBC";
GBentries objGBentries = new GBentries(MyConString);
DataGrid1.DataSource = objGBentries.getGBentries();
DataGrid1.DataBind();
}
catch (ArgumentException f)
{
Response.Write(f.Message);
}
}
}
Och så här ser koden till min komponent som ska hämta inlägg i gästbokstabellen ut:
//getGBentries.cs
using System;
using System.Data;
using Microsoft.Data.Odbc;
//using System.Data.OleDb;
namespace guestbook
{
public class GBentries
{
private string m_DSN;
public GBentries(string MyConString)
{
m_DSN = MyConString;
}
public DataSet getGBentries()
{
OdbcConnection myConnection = new OdbcConnection(m_DSN);
myConnection.Open();
OdbcDataAdapter myDataAdapter = new OdbcDataAdapter("select * from gbook", myConnection);
DataSet GBentries = new DataSet();
myDataAdapter.Fill(GBentries);
return GBentries;
}
}
}
Om det är något annat ni vill veta så säg till! :)
ASP.NET är inte någon stark sida hos mig, men av felmeddelandet så verkar den inte hitta odbc-drivrutinen eller själva databasen ifråga sig!
trexterMedlem sedan mars 20021 889 inlägg Jo det kan du iofs ha rätt i (har stirrat mig blind ett bra tag på själva koden ett tag ;) ). Jag vet inte riktigt hur MySQL fungerar jämfört med Access. Måste jag kanske köra igång någon process först, för att kunna använda databasen? :)
trexterMedlem sedan mars 20021 889 inlägg Dino
Din beskrivning var lite annorlunda jämfört med mysql.com:s. Jag provade din och får nu, i alla fall, ett annat felmeddende.´
Microsoft.Data.Odbc.OdbcException: ERROR [HY000] [MySQL][ODBC 3.51 Driver]Access denied for user: 'trexter@localhost' (Using password: YES) ERROR [HY000] [MySQL][ODBC 3.51 Driver]Access denied for user: 'trexter@localhost' (Using password: YES)
Antar att den vill att jag ska slänga med ett lösenord och ett användarnamn också, eller? Hur ser syntaxen ut för detta? :)
renholmMedlem sedan apr. 20012 266 inlägg trexterMedlem sedan mars 20021 889 inlägg Om jag lägger det i connectionsträngen får jag samma fel.
string MyConString = "DSN=mysql_dsn;Uid=trexter;Pwd=***";
trexter skrev:
Om jag lägger det i connectionsträngen får jag samma fel.
string MyConString = "DSN=mysql_dsn;Uid=trexter;Pwd=***";
Jag antar att du använder dig av ASP .NET C#.
Visst finns MySQL-odbc eller OLE installerad? Om inte installera den, för den följer inte med .NET framework, hänvisar till:
http://www.able-consulting.com/dotnet/adonet/Data_Providers.htm#MySQLNETNativeProvider
trexterMedlem sedan mars 20021 889 inlägg Jo, den är installerad. Jag har hela tiden följt hänvisningarna från mysql.com men ändå fungerar det inte. Kanske beror på någon inställning på min dator?
trexterMedlem sedan mars 20021 889 inlägg Ähum... tydligen kunde jag kommma åt datan om jag skippade lösenordet... även om jag ställt in ett lösenord i dns:en. Lite underligt...
Kan det bero på att det är jag som är localhost och att den då inte bryr sig om lösenordet?
Sedan har jag två andra frågor också.
1. Varför får inte min "felmeddelandevariabel heta "e" i denna koden:
catch (ArgumentException f)
{
Response.Write(f.Message);
}
Om jag döper den till e får jag:
A local variable named 'e' cannot be declared in this scope because it would give a different meaning to 'e', which is already used in a 'parent or current' scope to denote something else
även om jag varken deklarerat en sådan variabel i code-behinden eller i komponenten.
2. Är det någon som fått "ErrorObject.HelpLink" att fungera? När jag försöker visas ingenting...´
Tack alla som hjhälpt till hitintills.
edit) 3. Tydligen visas alla kolummer som är av typen varchar(30) och int men inte den som är av typen "blob". Hur kan det komma sig? :q
trexterMedlem sedan mars 20021 889 inlägg 3. Löste sig! Tydligen användes blob bara till "binär" data. Efter att jag bytt till text fungerade det. :)
JosefMedlem sedan mars 20023 561 inlägg 1. Det felet uppkommer väl bara när du har döpt System.EventArgs till e i samma sub. Annars borde det väl inte vara några problem.
trexterMedlem sedan mars 20021 889 inlägg Men kan man inte ha två olika objekt med samma namn?
trexterMedlem sedan mars 20021 889 inlägg Hur ska man skriva får att inte å ska bytas ut mot † osv, när man hämtar data ur mysql-db:n? :)