Hej, det finns tre klasser du kan använda från www.pellesoft.se/kurs - använd dom och kör sen: Tack för svar, men får ändå inte riktigt till det... Har nyligen börjat använda mig av VB och känner inte att jag förstår detta... "Men vart skriver man in server adressen?" Vad är felet med följande kod: Använde du default instansnamn "SQLEXPRESS" eller gav du SQL-serverinstansen ett annan namn vid installation av SQLEXPRESS? Jo detta är bara ett test jag satte upp nu så jag gav namnet SQLEXPRESS... Men du, vänta lite? Lite dumt av mig att skriva mysql i rubriken... Men jag har faktiskt testat med båda nu. Om du kan koppla upp dig mot databasen från Visual Studio så har ju VS skapat en connectionstring åt dig. Ok. Men hur skriver jag då för att initiera att jag ska skriva ett SQL kommando sen då? Jag har gjort två exempel (utan felhantering). Tack för alla hjälp:Hjälp Visual Studio 2005 hantera mysql
Program: Visual studio 2005
Språk: VB.net
Databas: mysql Express
Skulle behöva lite hjälp med hur man gör för att få mata in vanliga sql kommandon som t.ex.:
insert into storage (artnbr, pos) values(111, '1A');
Hittade Triggers som man skulle få skapa, men fick lustiga felmeddelanden varje gång
jag försökte spara ner mina dem.
Tacksam för alla svar.Sv: Hjälp Visual Studio 2005 hantera mysql
dinklass.executereader("insert into .....")Sv:Hjälp Visual Studio 2005 hantera mysql
Asså jag ska bara använda det för att lägga till och tabort objekt i databasen.
Då behöver jag väll bara detta?
Shared Function GetConnectionString() As String
' returnerar olika connectionsträngar beroende på om man kör i debugläge
' eller inte. Kör man i debug används den lokala databasen på utvmaskinen.
If InStr(HttpContext.Current.Request.Url.ToString, "localhost") > 0 Then
GetConnectionString = ConfigurationSettings.AppSettings("ConnectionStringLocal")
Else
GetConnectionString = ConfigurationSettings.AppSettings("ConnectionString")
End If
End Function
' Kör ett query innehållande sp-namn och dess parametrar
' returnerar ingenting
Shared Sub ExecuteQuery(ByVal sqlquery As String)
' endast för ins/upd/del
' Skapa instans av en Connection samt Command Object
Dim connectionstring As String = GetConnectionString()
Dim Con As New SqlConnection(connectionstring)
Dim cmd As SqlCommand
' öppnar connection
Con.Open()
' skickar in datat
cmd = New SqlCommand(sqlquery, Con)
' kör sp:n eller sql-satsen
Try
cmd.ExecuteNonQuery()
Catch ex As Exception
Throw New SystemException("Fel vid anrop av sql-fråga: " & sqlquery & "-" & Err.Description)
End Try
' stänger och frigör objekten
Con.Close()
cmd = Nothing
Con = Nothing
End Sub
Men vart skriver man in server adressen?Sv: Hjälp Visual Studio 2005 hantera mysql
I din connectionstring.
http://www.connectionstrings.com/?carrier=mysqlSv:Hjälp Visual Studio 2005 hantera mysql
Dim fdCon As New Dim fdCon As New OleDb.OleDbConnection("Provider=MINDATOR\SQLEXPRESS;Data Source=Lager;")
Dim fdCom As New OleDb.OleDbCommand("", fdCon)
fdCom.Connection.Open() '<------- Hänger sig på detta (The 'MINDATOR\SQLEXPRESS' provider is not registered on the local machine.)
Dim fdRead As OleDb.OleDbDataReader = fdCom.ExecuteReader(CommandBehavior.CloseConnection)
Dim nbr As Integer
Dim pos As Char
nbr = TextBox1.Text
pos = TextBox2.Text
fdCom.CommandText = "INSERT INTO Lager (artnbr, pos) VALUES ('" & nbr & "', '" & pos & "')"
fdCom.ExecuteNonQuery()
fdCon.Close()Sv: Hjälp Visual Studio 2005 hantera mysql
Sv:Hjälp Visual Studio 2005 hantera mysql
Sv: Hjälp Visual Studio 2005 hantera mysql
I rubriken på din fråga skriver du "Hjälp Visual Studio 2005 hantera mysql" alltså MYSQL men sedan i frågan anger du SQLEXPRESS.
Vad är det du kör egentligen, mysql eller SQLEXPRESS?Sv:Hjälp Visual Studio 2005 hantera mysql
Har försökt connecta med MyOleDB till en vanligt MySQL server, men får inte detta att funka. han hittar inte servern. Sen har jag testat SQL Express, och med det har jag kommit så lång som att jag kan få fram informationen i databasen i Visual studio, men det är ju inte dirket någon prestation. Men det jag mer måste kunna göra är att jag behöver kunna lägga till och ta bort objekt i databasen från mitt VB.net program, som jag då har skrivit i Visual studio... Sv: Hjälp Visual Studio 2005 hantera mysql
Sv:Hjälp Visual Studio 2005 hantera mysql
Det enda jag kan hitta:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: This line of code loads data into the 'LagerDataSet.Pallets' table. You can move, or remove it, as needed.
Me.PalletsTableAdapter.Fill(Me.LagerDataSet.Pallets)
End Sub
Som liknar en connectionstring i koden...Sv: Hjälp Visual Studio 2005 hantera mysql
Det första (button1_Click) använder sig av SqlDataReader för att läsa in data den andra (button2_Click) använder sig av ett Dataset som jag skapat i projektet.
Datasetet skapade jag genom att högerklicka på projektet och välja "Add New Item" och välja DataSet. När datasetet lagts till i projektet dubblklickar jag på det och väljer sedan att dra in min tabell från Server Explorer där jag har skapat min databasanslutning. Datasetet jag skapade namngav jag till "Tabel1DataSetTableAdapters"
Sök lite på MSDN på t ex SqlDataReader, DataSet och TableAdapters så hittar du lite matnytig info, exempel och walktroughs.
[edit] Jag har använt C# men hoppas du fixar det ändå.
[edit2] Hade misat att tala om att i datasetet skapade jag en metod som heter "FillById" det är den jag använder för att hämta önskad post.
<code>
using System;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;
namespace SqlWindowsApplication
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string connectionString = "Data Source=MinDator\\SQLEXPRESS;Initial Catalog=TestAndSupport;Integrated Security=True";
string queryString = "SELECT aDescription FROM Table1 WHERE anId = 2;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand(queryString, connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
// Call Read before accessing data.
if (reader.HasRows)
{
reader.Read();
MessageBox.Show(String.Format("{0}", reader[0]), "Found data", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show("Hittade inte sökt data", "No data", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
// Call Close when done reading.
reader.Close();
}
}
private void button2_Click(object sender, EventArgs e)
{
Tabel1DataSetTableAdapters.Table1TableAdapter adapt = new Tabel1DataSetTableAdapters.Table1TableAdapter();
Tabel1DataSet.Table1DataTable table = new Tabel1DataSet.Table1DataTable();
adapt.FillById(table, 2);
if(table.Count > 0)
{
Tabel1DataSet.Table1Row row = ((Tabel1DataSet.Table1Row)table.Rows[0]);
MessageBox.Show(String.Format("{0}", row.aDescription), "Found data", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show("Hittade inte sökt data", "No data", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
}
</code>Sv:Hjälp Visual Studio 2005 hantera mysql
Fick ihop följande till att fungera:
Dim cn As New SqlConnection()
cn.ConnectionString = "Data Source=MINDATOR\SQL2005;Initial Catalog=storage;Integrated Security=True"
Try
Dim cmd As New SqlCommand()
cmd.CommandTimeout = 60
cmd.Connection = cn
cmd.CommandType = CommandType.Text
cn.Open()
If cn.State = ConnectionState.Open Then
cmd.CommandText = "insert into pallets (artnbr, pos) values(666, '5A')"
cmd.ExecuteScalar()
End If
Catch exp As Exception
MessageBox.Show("Sorry no connection")
Finally
cn.Close()
End Try