Avatar billede jetsetter Nybegynder
01. oktober 2008 - 15:44 Der er 23 kommentarer

Database commando ASP.NET C# MySQL

Nu har jeg fået kontakt til databasen og kan hente data:


    /*Provider information string*/
        string strProvider = "Data Source=" + host + ";Database=" + database + ";User ID=" + user + ";Password=" + password;

        /*Connection string*/
        MySqlConnection mysqlCon = new MySqlConnection(strProvider);

        /*Open Connection*/
        mysqlCon.Open();

        /*SQL Query*/
        string strSQL = "SELECT * FROM Kunde";
        MySqlCommand mysqlCmd = new MySqlCommand(strSQL, mysqlCon);

        /*reading data*/
        MySqlDataReader mysqlReader = mysqlCmd.ExecuteReader();

        TextBox1.Text = null;

        while (mysqlReader.Read())
       
        {

            TextBox1.Text = TextBox1.Text + mysqlReader.GetString(0) + " " + mysqlReader.GetString(1) + " " + mysqlReader.GetString(2);
           

        }



Men men men, jeg vil jo også gerne kunne skrive, jeg har brugt en del tid på at prøve mig frem.. men kan ikke få det til at virke.. hvordan indsætter jeg i databasen??
Avatar billede arne_v Ekspert
01. oktober 2008 - 16:15 #1
string strSQL = "INSERT INTO kunde VALUES (1,2,'AB','CD')";
MySqlCommand mysqlCmd = new MySqlCommand(strSQL, mysqlCon);
mysqlCmd.ExecuteNonQuery();
Avatar billede arne_v Ekspert
01. oktober 2008 - 16:15 #2
Hvis ASP.NET saa husk at faa kigget paa:
- web controller som er mere sophistikerede end TextBox
- repeater
Avatar billede arne_v Ekspert
01. oktober 2008 - 16:18 #3
eksempel paa det sidste:

<%@ import namespace="System.Data" %>
<%@ import namespace="System.Data.SqlClient" %>
<html>
<head>
<script language="C#" runat="server">
void Page_Load(Object sender, EventArgs e)
{
    SqlConnection con = new SqlConnection("server=ARNEPC3;Integrated Security=SSPI;database=Test");
    con.Open();
    SqlCommand cmd = new SqlCommand("SELECT * FROM T1", con);
    SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
    MyDataList.DataSource = rdr;
    MyDataList.DataBind();
}
</script>
</head>
<body>
<form runat=server>
    <table border>
        <asp:Repeater id="MyDataList" runat="server">
            <ItemTemplate>
                <tr>
                <td><%# DataBinder.Eval(Container.DataItem,"F1") %></td>
                <td><%# DataBinder.Eval(Container.DataItem,"F2") %></td>
                </tr>
            </ItemTemplate>
        </asp:Repeater>
    </table>
</form>
</body>
</html>

[eksemplet er til SQLServer men du kan lave det samme med MySqlConnection, MySqlCommand
og MySqlDataReader]
Avatar billede jetsetter Nybegynder
01. oktober 2008 - 16:29 #4
hvad gør mysqlCmd.ExecuteNonQuery();  ?
Avatar billede jetsetter Nybegynder
01. oktober 2008 - 16:32 #5
tak for eksemplet.. tager mig nok lidt tid at trygge igennem...
Avatar billede arne_v Ekspert
01. oktober 2008 - 16:45 #6
ExecuteNonQuery udfoerer en SQL saetning som ikke returnerer data (INSERT/UPDATE/DELETE)
Avatar billede jetsetter Nybegynder
01. oktober 2008 - 16:47 #7
ok, det virker, nu kan jeg indsætte data!!

hvor kan jeg kigge mere på:

- web controller som er mere sophistikerede end TextBox
- repeater
Avatar billede jetsetter Nybegynder
01. oktober 2008 - 16:53 #8
Avatar billede arne_v Ekspert
01. oktober 2008 - 17:18 #9
Avatar billede jetsetter Nybegynder
01. oktober 2008 - 21:02 #10
ok, du mener foreksempel vise data vha foreksempel gridview ?

De er faktisk smarte, så en tortorial hvor deres funktionalitet vises. Men hvordan connector jeg et gridview til min MySql database??
Avatar billede jetsetter Nybegynder
01. oktober 2008 - 21:44 #11
jeg har en mysqlReader der kører under page_load, men jeg vil gerne binde disse data til et grid som bliver oprettet .aspx-fil . Hvordan får denne:

<asp:GridView ID="GridView1" runat="server" DataSourceID="mysqlReader">
    </asp:GridView>

Adgang til data som skulle kunne hentes i code under page_load.. ?
Avatar billede jetsetter Nybegynder
01. oktober 2008 - 21:46 #12
Det begynder sku at være langhåret at lave disse connections selv. Ville jeg ikke slippe lettere over det ved at benytte en MSSQL istedet? Så lader det til at Visual Web Dev Express forærer en hel del ?
Avatar billede jetsetter Nybegynder
01. oktober 2008 - 21:47 #13
Hvis jeg designede database i access, fordi jeg endnu ikke har webhotelet med MSsql databasen, er det så nemt at converterer databasen senere, eller er det bedre at designe direkte i MSSQL?
Avatar billede arne_v Ekspert
02. oktober 2008 - 02:37 #14
Du må kunne sætte DataSource property på en GridView til enten en MySqlDataReader eller
et DataSet.

Jeg har dog ikke et eksempel lige ved hånden.

De der deklarative DataSource virker meget fixe, men du er efter min mening
betydeligt bedre stillet ved at kode din data access i rigtig kode.
Avatar billede arne_v Ekspert
02. oktober 2008 - 04:01 #15
Jeg prøvede lige - GridView og SqlDataSource virker fint medf MySQL !
Avatar billede arne_v Ekspert
02. oktober 2008 - 04:02 #16
nyeste MySQL Connector for .NET

web.config:

    <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" />
        </DbProviderFactories>
    </system.data>
    <connectionStrings>
Database=aspnetdb" />
      <add name="mysql4" providerName="MySql.Data.MySqlClient" connectionString="Data Source=localhost;Database=Test;User Id=;Password=" />
    </connectionStrings>

gv1.aspx:

<%@ Page language="C#" %>
<form id="f" runat="server">
    <asp:GridView Id="gv"
        DataSourceId="t1"
        AutogenerateColumns="true"
        AutogenerateDeleteButton="true"
        AutogenerateEditButton="true"
        DataKeyNames="f1" 
        runat="server">
    </asp:gridview>
    <asp:SqlDataSource Id="t1" 
        SelectCommand="SELECT f1,f2 FROM t1"
        UpdateCommand="UPDATE t1 SET f2=?f2 WHERE f1=?f1"
        DeleteCommand="DELETE FROM t1 WHERE f1=?f1"
        ProviderName="<%$ ConnectionStrings:mysql4.ProviderName %>"
        ConnectionString="<%$ ConnectionStrings:mysql4%>"
        runat="server">
    </asp:sqldatasource>
</form>
Avatar billede jetsetter Nybegynder
02. oktober 2008 - 13:01 #17
det lader til der mangler noget i denne sætning: Database=aspnetdb" />
Avatar billede jetsetter Nybegynder
02. oktober 2008 - 13:18 #18
JEg kan stadig ikke få det til at virke, her er indholdet af de to filer:
Avatar billede jetsetter Nybegynder
02. oktober 2008 - 13:19 #19
default.aspx:

<%@ Page language="C#" %>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title></title>
</head>
<body>

<form id="f" runat="server">
    <asp:GridView Id="gv"
        DataSourceId="Kunde"
        AutogenerateColumns="true"
        AutogenerateDeleteButton="true"
        AutogenerateEditButton="true"
        DataKeyNames="personnnummer" 
        runat="server">
    </asp:gridview>
    <asp:SqlDataSource Id="Kunde" 
        SelectCommand="SELECT personnnummer,fornavn,efternavn FROM Kunde"
        UpdateCommand="UPDATE Kunde SET fornavn=?fornavn WHERE personnnummer=?personnnummer"
        DeleteCommand="DELETE FROM Kunde WHERE personnnummer=?personnnummer"
        ProviderName="<%$ ConnectionStrings:mysql4.ProviderName %>"
        ConnectionString="<%$ ConnectionStrings:mysql4%>"
        runat="server">
    </asp:sqldatasource>
</form>
</body>
</html>
Avatar billede jetsetter Nybegynder
02. oktober 2008 - 13:20 #20
<?xml version="1.0"?>
<!--
    Note: As an alternative to hand editing this file you can use the
    web admin tool to configure settings for your application. Use
    the Website->Asp.Net Configuration option in Visual Studio.
    A full list of settings and comments can be found in
    machine.config.comments usually located in
    \Windows\Microsoft.Net\Framework\v2.x\Config
-->
<configuration>
    <configSections>
        <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
            <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
                <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
                <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
                    <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/>
                    <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
                    <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
                    <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
                </sectionGroup>
            </sectionGroup>
        </sectionGroup>
    </configSections>
    <appSettings/>

  <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" />
    </DbProviderFactories>
  </system.data>
  <connectionStrings>
    <add name="mysql4" providerName="MySql.Data.MySqlClient" connectionString="Data Source=server;Database=db;User Id=user;Password=pw" />
  </connectionStrings>

  <system.web>
        <!--
            Set compilation debug="true" to insert debugging
            symbols into the compiled page. Because this
            affects performance, set this value to true only
            during development.
        -->
        <compilation debug="true">
            <assemblies>
                <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
                <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
                <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
                <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
                <add assembly="MySql.Data, Version=5.2.3.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/></assemblies>
        </compilation>
        <!--
            The <authentication> section enables configuration
            of the security authentication mode used by
            ASP.NET to identify an incoming user.
        -->
        <authentication mode="Windows"/>
        <!--
            The <customErrors> section enables configuration
            of what to do if/when an unhandled error occurs
            during the execution of a request. Specifically,
            it enables developers to configure html error pages
            to be displayed in place of a error stack trace.

        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
            <error statusCode="403" redirect="NoAccess.htm" />
            <error statusCode="404" redirect="FileNotFound.htm" />
        </customErrors>
        -->
        <pages>
            <controls>
                <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
                <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            </controls>
        </pages>
        <httpHandlers>
            <remove verb="*" path="*.asmx"/>
            <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
        </httpHandlers>
        <httpModules>
            <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        </httpModules>
    </system.web>
    <system.codedom>
        <compilers>
            <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
                <providerOption name="CompilerVersion" value="v3.5"/>
                <providerOption name="WarnAsError" value="false"/>
            </compiler>
            <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
                <providerOption name="CompilerVersion" value="v3.5"/>
                <providerOption name="OptionInfer" value="true"/>
                <providerOption name="WarnAsError" value="false"/>
            </compiler>
        </compilers>
    </system.codedom>
    <!--
        The system.webServer section is required for running ASP.NET AJAX under Internet
        Information Services 7.0.  It is not necessary for previous version of IIS.
    -->
    <system.webServer>
        <validation validateIntegratedModeConfiguration="false"/>
        <modules>
            <remove name="ScriptModule"/>
            <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        </modules>
        <handlers>
            <remove name="WebServiceHandlerFactory-Integrated"/>
            <remove name="ScriptHandlerFactory"/>
            <remove name="ScriptHandlerFactoryAppServices"/>
            <remove name="ScriptResource"/>
            <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        </handlers>
    </system.webServer>
    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
                <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
                <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
            </dependentAssembly>
        </assemblyBinding>
    </runtime>
</configuration>
Avatar billede bongii Nybegynder
27. oktober 2009 - 11:33 #21
Arne_V: Hvad gør SqlDataReader rdr = rs.ExecuteReader(CommandBehavior.CloseConnection); ?
Avatar billede arne_v Ekspert
27. oktober 2009 - 13:59 #22
Returnerer en data reader hvor kald af Close paa deb data reader vil kalde Close paa connection.
Avatar billede bongii Nybegynder
27. oktober 2009 - 14:06 #23
ok :)
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



IT-JOB