Hej, jag har lite problem med att få SqlDataSource att fungera tillsammans med mysql (connector/net). Sitter på jobbet nu och har all kod hemma så postar det senare. Du får ta något annat än SqlDataSource, eftersom att den, som sagt, är enbart för MS SQL. Använd t.ex. odbc, eller mysql:s egna connector istället Enligt MSDN: Hm, jag tänkte fel, tänkte på connectorn.. My bad :) Nu sitter jag fast med samma felmeddelande som i posten ovan... "Unable to find the requested .Net Framework Data Provider. It may not be installed." Vad tror du om den här? Jag har testat lägga till en DbProviderFactories tag samt en <add> med aktuell data för min Mysql.data.dll-fil men utan framgång. Fortfarande samm felmeddelande. Såg nu att jag skrev fel länk in min förr-förra post. Kan du posta allt som rör databasen från web.config + din deklaration av sqldatasource? Om du har laddat ner connectorn från http://dev.mysql.com/downloads/connector/net/5.2.html och installerat den, allt borde funka utan problem. Om du ville inte installera den, och hara bara packat upp zip filen, du måste se till att den är uppackat i bin foldern på din app. Jag har installerat dne flera gånger om och dllne ligger också i min bin mapp. Här är hela felmeddelandet, med stacktrace och allt. Testa den här: http://64.233.183.104/search?q=cache:9OLjCzrIMfkJ:www.officialeriktaylor.com/blog/index.php/2008/04/07/the-net-sqldatasource-and-mysql/+sqldatasource+mysql&hl=sv&ct=clnk&cd=4&gl=se Det fungerade, tack! Hade för mig att jag testat det redan men kanske någonting annat var fel i den vevan. Men nu fungerar det iaf :) En uppföljningsfråga.. Mjo, det borde gå tycker jag. Om du ändrar i templaten för din gridview så skulle du kunna sätta visible-propertyn på varje checkbox till ett databundet villkor, något i stil med:SqlDataSource + MySQL
Vad jag försöker göra är att skapa en datagrid som ska gå att editera. Har lyckats lista data i datagriden via codebehind genom att helt enkelt ge den en DataTable som DataSource. Dock händer ingenting när jag försöker editera en rad. Jag kan "markera" rader, färgen ändrar osv men jag får inga alternativ att göra ändringar.
Om jag förstått det rätt måste jag använda mig av en SqlDataSource-kontroll för att den ska bli editerbar, det är här jag fastnar eftersom jag använder MySQL och den verkar vara gjord för ms sql.Sv: SqlDataSource + MySQL
Sv:SqlDataSource + MySQL
By default, the SqlDataSource control works with the .NET Framework Data
Provider for SQL Server, but SqlDataSource is not Microsoft SQL
Server-specific. You can connect the SqlDataSource control with any database
product for which there is a managed ADO.NET provider. When used with the
System.Data.OleDb provider, the SqlDataSource can work with any OLE
DB-compliant database. When used with the System.Data.Odbc provider, the
SqlDataSource can be used with any ODBC driver and database, including IBM
DB2, MySQL, and PostgreSQL. When used with the System.Data.OracleClient
provider, the SqlDataSource can work with Oracle 8.1.7 databases and later.
The list of allowable providers is registered in the DbProviderFactories
section of the configuration file, either in the Machine.config or
Web.config file. For more information, see Selecting Data Using the
SqlDataSource Control.
Vilket betyder att det borde väl gå att göra?
Browsade lite till nu och hittade den här posten, inte samma fel som jag får men jag tror jag kan hitta en del ledtrådar där
http://forums.asp.net/t/1117728.aspx
ska se närmare på det när jag kommer hem.Sv: SqlDataSource + MySQL
Hur som haver, det låter som en konfigurationsfel i SqlDataSource-grunkan, en gissning är att enbart select är satt, insert, update och delete saknas säkert.Sv:SqlDataSource + MySQL
Hans lösning såg ut såhär:
http://forums.asp.net/search/SearchResults.aspx?q=userid%3a743702&o=DateDescending
Kör dock fast här, han säger att man ska använda ett plugin till VS 2005 men jag använder Visual Web Developer 2008 som saknar stöd för plugins över huvud taget. Vad exakt gör det pluginet? Kan jag göra det manuellt?Sv: SqlDataSource + MySQL
http://sqlite.phxsoftware.com/forums/t/239.aspxSv:SqlDataSource + MySQL
Sv:SqlDataSource + MySQL
http://forums.asp.net/t/1117728.aspx?PageIndex=2 skulle det vara, andara posten uppifrån.Sv: SqlDataSource + MySQL
Sv: SqlDataSource + MySQL
Mvh,Sv:SqlDataSource + MySQL
Här är lite relevant kod:
web.config
<code> <connectionStrings>
<clear/>
<add name="Connection" connectionString="Database=campaignops;Data Source=localhost;User Id=root;Password=moogre;" providerName="MySql.Data"/>
<add name="ODBC1" connectionString="DRIVER={MySQL ODBC 5.1 Driver};SERVER=localhost;DATABASE=campaignops;PORT=3306;USER=root;PASSWORD=moogre;OPTION=3;" providerName="System.Data.Odbc" />
</connectionStrings>
<system.data>
<DbProviderFactories>
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data,Version=5.2.3.0,Culture=neutral,PublicKeyToken=c5687fc88969c44d"/>
</DbProviderFactories>
</system.data></code>
default.aspx:
<code>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:Connection %>" ProviderName="<%$ ConnectionStrings:Connection.ProviderName %>"
SelectCommand="SELECT OpsID, OpsName, Tier1, Tier2, Tier3, Tier4 FROM Ops" DeleteCommand="Delete from Ops where OpsID = @id">
<DeleteParameters>
<asp:FormParameter Name="OpsID" Type="Int32" />
</DeleteParameters>
</asp:SqlDataSource>
<asp:GridView ID="cOps" Runat="server" BorderWidth="1px"
BackColor="LightGoldenrodYellow" CssClass="Tabell" OnRowEditing="cOps_RowEditing" OnRowCancelingEdit="cOps_RowCancelingEdit" OnSelectedIndexChanged="cOps_SelectedIndexChanged" OnRowUpdating="cOps_RowUpdating"
BorderColor="Tan" DataSourceID="SqlDataSource1" DataKeyNames="OpsID" AllowPaging="False" AllowSorting="True" DetailSummaryText="View Details">
<FooterStyle BackColor="Tan"></FooterStyle>
<PagerStyle ForeColor="DarkSlateBlue" HorizontalAlign="Center" BackColor="PaleGoldenrod"></PagerStyle>
<HeaderStyle Font-Bold="True" BackColor="Tan"></HeaderStyle>
<EmptyDataTemplate>
This is empty<br />
</EmptyDataTemplate>
<AlternatingRowStyle BackColor="PaleGoldenrod"></AlternatingRowStyle>
<Columns>
<asp:CommandField ShowSelectButton="True"></asp:CommandField>
</Columns>
<SelectedRowStyle ForeColor="GhostWhite" BackColor="DarkSlateBlue"></SelectedRowStyle>
</asp:GridView>
</code>
Och felmeddelandet:
Unable to find the requested .Net Framework Data Provider. It may not be installed.Sv:SqlDataSource + MySQL
Server Error in '/ops' Application.
Unable to find the requested .Net Framework Data Provider. It may not be installed.
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: System.ArgumentException: Unable to find the requested .Net Framework Data Provider. It may not be installed.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[ArgumentException: Unable to find the requested .Net Framework Data Provider. It may not be installed.]
System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName) +1447431
System.Web.UI.WebControls.SqlDataSource.GetDbProviderFactory() +63
System.Web.UI.WebControls.SqlDataSource.GetDbProviderFactorySecure() +19
System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +120
System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +17
System.Web.UI.WebControls.DataBoundControl.PerformSelect() +149
System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +70
System.Web.UI.WebControls.GridView.DataBind() +4
System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +82
System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +69
System.Web.UI.Control.EnsureChildControls() +87
System.Web.UI.Control.PreRenderRecursiveInternal() +50
System.Web.UI.Control.PreRenderRecursiveInternal() +170
System.Web.UI.Control.PreRenderRecursiveInternal() +170
System.Web.UI.Control.PreRenderRecursiveInternal() +170
System.Web.UI.Control.PreRenderRecursiveInternal() +170
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2041Sv: SqlDataSource + MySQL
(MySql.Data.MySqlClient som providername)Sv:SqlDataSource + MySQL
Sv: SqlDataSource + MySQL
Har en tabell som bland annat har dessa 5 kolumner:
Tier1 Tier2 Tier3 Tier4 och Tiers
Tier1-4 är booleans och "Tiers" är en int mellan 1 och 4. När tabellen genereras i gridviewn blir Tier 1-4 automatiskt checkboxes.
Vad jag vill göra är att ifall Tiers värde är t.ex. 3 så ska Tier1-3 vara checkboxes och Tier4 helt enkelt vara tom. om Tiers är 2 ska 1-2 vara checkboxes och 3-4 tomma osv.
Inser att databasstrukturen är dålig men ville bara slänga ihop det snabbt, programet kommmer hur som helst endast användas av mig. Är det möjligt att göra med denna databasstruktur?Sv:SqlDataSource + MySQL
Visible='<%# (int)Databinder.Eval(Container.DataItem, "Tiers") >= 3_FÖR_TIERS3_OSV %>'