28. december 2006 - 01:50Der er
8 kommentarer og 1 løsning
Forbindelse til MySQL
Hej eksperter! Jeg er lige startet med ASP.NET, ved indtil videre ikke så meget om det - så bær lidt over med mig :-)
Nu har jeg så fået lavet min Default.aspx fil, men nu kommer mit problem så, at lave forbindelse til en MySQL database. Hvordan gør det? Indtil videre har jeg lavet en class i min App_Data mappe, der hedder mysql.cs - i den har jeg fundet følgende til MySQL:
using System; using System.Data; using ByteFX.Data.MySqlClient;
class MainClass { public static void Main(string[] args) { MySqlConnection con = new MySqlConnection("Database=;Data Source=;User Id=;Password="); con.Open(); MySqlCommand sel = new MySqlCommand("SELECT * FROM T1", con); MySqlDataReader rdr = sel.ExecuteReader(); while (rdr.Read()) { Console.WriteLine(rdr[0] + " " + rdr[1]); } rdr.Close(); con.Close(); } }
Det lader også til at fungere ok - den kommer ihvertfald ikke med fejl kan man sige. Men hvordan i alverden benytter jeg mig nu af dette? Hvordan kalder jeg den? Hvordan hiver jeg fx. noget ud fra en tabel jeg har i min database?
Arne, håbet det var dig der ville svare :-) Men jeg har kigget de der artikler i gennem og har jo også fået lavet en .cs fil med min forbindelse. Men det er som den ikke bliver kørt? Hvordan kalder jeg den, så jeg kan få mine resultater ud?
det her er SQLServer og VB men forskellen er ike stor til MySQL og C#:
<%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.SqlClient" %> <script language="VB" runat="server"> Private Sub LoadData Dim con As SqlConnection = New SqlConnection ("server=ARNEPC3;Integrated Security=SSPI;database=Test") con.Open Dim da As SqlDataAdapter = New SqlDataAdapter("SELECT * FROM T1", con) Dim ds As DataSet = New DataSet("T1") da.Fill(ds) MyDataList.DataSource = ds MyDataList.DataBind con.Close End Sub Private Sub Page_Load(src As Object, e As EventArgs) Call LoadData End Sub Private Sub Save_Click(src As Object, e As EventArgs) Dim con As SqlConnection = New SqlConnection("server=ARNEPC3;Integrated Security=SSPI;database=Test") con.Open Dim ins As SqlCommand = New SqlCommand("INSERT INTO T1 VALUES(" & f1.Text & ",'" & f2.Text & "')", con) ins.ExecuteNonQuery con.Close Call LoadData End Sub </script> <form runat=server> Current data: <table border> <tr> <th>F1</th> <th>F2</th> </tr> <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> Add row: <br/> F1: <asp:TextBox id="F1" runat="server"/> <br/> F2: <asp:TextBox id="F2" runat="server"/> <br/> <asp:Button id="SaveBtn" Text="Save" OnClick="Save_Click" runat="server"/> </form>
Nu bliver det jo straks meget mere spændende :-) Det kode du skrev i 28/12-2006 18:05:08 virker, den putter nu et 0 ind i en label og det passer perfekt. Så skal jeg vel bare selv undersøge hvordan man looper noget, det tror jeg nu heller ikke er det store problem :-)
Men det jeg tænkte på var om man ikke kunne include det selve forbindelsen til databasen i en .cs fil, så hvis jeg vil ændre den skal jeg bare gøre det der, eller tænker jeg nu for meget classic ASP?
Du må gerne smide et svar Arne, du har allerede været til stor hjælp.
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.