Hejsan!
Sitter här och försöker få till det med ASP.Net 2.0 och MySQL
Jag har kommit så långt att jag kan läsa data ur databasen, men att lägga in data var värre...
Jag får:
Compiler Error Message: BC30002: Type 'strConnectionString' is not defined.
Source Error:
Line 11: Sub laggtill(ByVal sender As Object, ByVal e As System.EventArgs)
Line 12:
Line 13: Dim MyConString As strConnectionString
Line 14:
Line 15:
Tack på förhand
/Tomas
<%@ Page Language="VB" Debug="True" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.Odbc" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Sub laggtill(ByVal sender As Object, ByVal e As System.EventArgs)
Dim MyConString As strConnectionString
strConnectionString = "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=xxxxxxxx; DATABASE=xxxxx; UID=xxxxx; PASSWORD=xxxxx; OPTION=3"
OdbcConnection myConnection = new OdbcConnection(strConnectionString);
myConnection.Open();
string strQuery = "INSERT INTO tbl_users(Fornamn,Efternamn,Tfnnummer) VALUES (?Fornamnx, ?Efternamnx, ?Tfnnummerx)";
OdbcCommand myCommand = new OdbcCommand(strQuery, myConnection);
myCommand.Parameters.AddWithValue("?Fornamnx", txtFornamn.Text);
myCommand.Parameters.AddWithValue("?Efternamnx", txtEfternamn.Text);
myCommand.Parameters.AddWithValue("?Tfnnummerx", txtTfnnummer.Text);
myCommand.ExecuteNonQuery();
myConnection.Close();
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>MySQL .NET Test Lägg till data</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h4>
Lägg till post</h4>
<p>
Förnamn<br />
<asp:TextBox ID="txtFornamn" runat="server" Width="100px"></asp:TextBox></p>
<p>
Efternamn</p>
<p>
<asp:TextBox ID="txtEfternamn" runat="server" Width="100px"></asp:TextBox></p>
<p>
Tfn. nummer</p>
<p>
<asp:TextBox ID="txtTfnnummer" runat="server" Width="100px"></asp:TextBox></p>
<p>
<asp:Button ID="Button1" runat="server" OnClick="laggtill" Text="Lägg till" /></p>
</div>
</form>
</body>
</html>
Nu laddas sidan, men när jag försöker spara data får jag följande:
ERROR [23000] [MySQL][ODBC 3.51 Driver][mysqld-4.1.21-standard]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Fornamnx, 'hult'Efternamnx, '787878787'Tfnnummerx)' at line 1
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.Data.Odbc.OdbcException: ERROR [23000] [MySQL][ODBC 3.51 Driver][mysqld-4.1.21-standard]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Fornamnx, 'hult'Efternamnx, '787878787'Tfnnummerx)' at line 1
Source Error:
Line 30: myCommand.Parameters.AddWithValue("?Tfnnummerx", txtTfnnummer.Text)
Line 31: Line 32: myCommand.ExecuteNonQuery()
Line 33: myConnection.Close()
Line 34:
Source File: save.aspx Line: 32
Nu ser koden ut så här:
Sub laggtill(ByVal sender As Object, ByVal e As System.EventArgs)
Dim strConnectionString As String
Dim strQuery As String
Dim MyConnection As OdbcConnection
Dim myCommand As OdbcCommand
strConnectionString = "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=xxxx; DATABASE=xxxxx; UID=xxxxx; PASSWORD=xxxxx; OPTION=3"
MyConnection = new OdbcConnection(strConnectionString)
MyConnection.Open()
strQuery = "INSERT INTO tbl_users(Fornamn,Efternamn,Tfnnummer) VALUES (?Fornamnx, ?Efternamnx, ?Tfnnummerx)"
myCommand = new OdbcCommand(strQuery, myConnection)
myCommand.Parameters.AddWithValue("?Fornamnx", txtFornamn.Text)
myCommand.Parameters.AddWithValue("?Efternamnx", txtEfternamn.Text)
myCommand.Parameters.AddWithValue("?Tfnnummerx", txtTfnnummer.Text)
myCommand.ExecuteNonQuery()
myConnection.Close()
End Sub
Här är en i VB fast den använder en StoredProcedure. Principen är den samma. Och lite slarvigt skriven ser jag :l
Public Shared Sub Add(ByVal strMessage As String)
Using conn As New SqlConnection(ConfigurationManager.ConnectionStrings("minanslutning").ConnectionString)
Using command As New SqlCommand("AddPost", conn)
command.CommandType = CommandType.StoredProcedure
command.Parameters.Add(New SqlParameter("@Meddelande", strMessage))
conn.Open()
command.ExecuteNonQuery()
End Using
End Using
End Sub
Blev inge klokare :(
Koden skapar en ny rad i databasen men lägger inte in värdena från text boxarna...
Någon som har någon lösning? sidan i sin helhet nu:
<%@ Page Language="VB" Debug="True" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.Odbc" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Sub laggtill(ByVal sender As Object, ByVal e As System.EventArgs)
Dim strConnectionString As String
Dim strQuery As String
Dim MyConnection As OdbcConnection
Dim myCommand As OdbcCommand
strConnectionString = "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=xxxxx; DATABASE=xxxxxx; UID=xxxxxx; PASSWORD=xxxxx; OPTION=3"
MyConnection = new OdbcConnection(strConnectionString)
MyConnection.Open()
strQuery = "INSERT INTO tbl_users(Fornamn,Efternamn,Tfnnummer) VALUES (@Fornamnx, @Efternamnx, @Tfnnummerx)"
myCommand = new OdbcCommand(strQuery, myConnection)
myCommand.Parameters.AddWithValue("@Fornamnx", txtFornamn.Text)
myCommand.Parameters.AddWithValue("@Efternamnx", txtEfternamn.Text)
myCommand.Parameters.AddWithValue("@Tfnnummerx", txtTfnnummer.Text)
myCommand.ExecuteNonQuery()
myConnection.Close()
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>MySQL .NET Test Lägg till data</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h4>
Lägg till post</h4>
<p>
Förnamn<br />
<asp:TextBox ID="txtFornamn" runat="server" Width="100px"></asp:TextBox></p>
<p>
Efternamn</p>
<p>
<asp:TextBox ID="txtEfternamn" runat="server" Width="100px"></asp:TextBox></p>
<p>
Tfn. nummer</p>
<p>
<asp:TextBox ID="txtTfnnummer" runat="server" Width="100px"></asp:TextBox></p>
<p>
<asp:Button ID="Button1" runat="server" OnClick="laggtill" Text="Lägg till" /></p>
</div>
</form>
</body>
</html>