Jump to content
Xtreme .Net Talk

mihaiguran

Members
  • Posts

    4
  • Joined

  • Last visited

mihaiguran's Achievements

Newbie

Newbie (1/14)

0

Reputation

  1. I've written: Dim strConn As String = "DSN=mysqldsn;" _ & "SERVER=192.168.0.99;" _ & "UID=root;PWD=;OPTION=3; database=date" Dim objConn As New OdbcConnection(strConn) objConn.Open() Dim StrSQL As String = "SELECT * FROM Clienti" Dim objDA2 = New OdbcDataAdapter(StrSQL, objConn) Dim ds As New DataSet objDA2.Fill(ds, "clienti") ds.Tables("clienti").Rows(0)(2) = "dsfsf" objDA2.Update(ds, "clienti") I got rhe error: Update requires a valid UpdateCommand when passed DataRow collection with modified rows I tryed to add an update command like this objDA2.UpdateCommand = New OdbcCommand objDA2.UpdateCommand.Connection = objConn objDA2.UpdateCommand.CommandText = "UPDATE Clienti SET ID=@ID, Denumire = @Denumire, Adresa = @Adresa, Telefon = @Telefon WHERE (ID = @Original_ID) AND (Adresa = @Original_Adresa OR @Original_Adresa IS NULL AND Adresa IS NULL) AND (Denumire = @Original_Denumire OR @Original_Denumire IS NULL AND Denumire IS NULL) AND (Telefon = @Original_Telefon OR @Original_Telefon IS NULL AND Telefon IS NULL)" objDA2.UpdateCommand.Parameters.Add(New OdbcParameter("@ID", Microsoft.Data.Odbc.OdbcType.BigInt, 8, "ID")) objDA2.UpdateCommand.Parameters.Add(New OdbcParameter("@Denumire", Microsoft.Data.Odbc.OdbcType.Text, 50, "Denumire")) objDA2.UpdateCommand.Parameters.Add(New OdbcParameter("@Adresa", Microsoft.Data.Odbc.OdbcType.Text, 50, "Adresa")) objDA2.UpdateCommand.Parameters.Add(New OdbcParameter("@Telefon", Microsoft.Data.Odbc.OdbcType.Text, 50, "Telefon")) objDA2.UpdateCommand.Parameters.Add(New OdbcParameter("@Original_ID", Microsoft.Data.Odbc.OdbcType.BigInt, 8, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "ID", System.Data.DataRowVersion.Original, Nothing)) objDA2.UpdateCommand.Parameters.Add(New OdbcParameter("@Original_Denumire", Microsoft.Data.Odbc.OdbcType.Text, 50, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "Denumirea", System.Data.DataRowVersion.Original, Nothing)) objDA2.UpdateCommand.Parameters.Add(New OdbcParameter("@Original_Adresa", Microsoft.Data.Odbc.OdbcType.Text, 50, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "Adresa", System.Data.DataRowVersion.Original, Nothing)) objDA2.UpdateCommand.Parameters.Add(New OdbcParameter("@Original_Telefon", Microsoft.Data.Odbc.OdbcType.Text, 50, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "Telefon", System.Data.DataRowVersion.Original, Nothing)) I got the error message Concurrency violation: the UpdateCommand affected 0 records. Please help me.
  2. I found one mistake. acceptchange was true. I changed the code like this Dim StrSQL2 As String = "SELECT * FROM Clienti" Dim objDA2 = New Microsoft.Data.Odbc.OdbcDataAdapter(StrSQL2, objConn1) objDA2.UpdateCommand = New Microsoft.Data.Odbc.OdbcCommand objDA2.UpdateCommand.Connection = objConn1 objDA2.UpdateCommand.CommandText = "UPDATE Clienti SET ID=@ID, Denumire = @Denumire, WHERE (ID = @Original_ID) AND (Denumire = @Original_Denumire OR @Original_Denumire IS NULL AND Denumire IS NULL)" objDA2.UpdateCommand.Parameters.Add(New Microsoft.Data.Odbc.OdbcParameter("@ID", Microsoft.Data.Odbc.OdbcType.BigInt, 8, "ID")) objDA2.UpdateCommand.Parameters.Add(New Microsoft.Data.Odbc.OdbcParameter("@Denumire", Microsoft.Data.Odbc.OdbcType.Text, 50, "Denumire")) objDA2.UpdateCommand.Parameters.Add(New Microsoft.Data.Odbc.OdbcParameter("@Original_ID", Microsoft.Data.Odbc.OdbcType.BigInt, 8, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "ID", System.Data.DataRowVersion.Original, Nothing)) objDA2.UpdateCommand.Parameters.Add(New Microsoft.Data.Odbc.OdbcParameter("@Original_Denumire", Microsoft.Data.Odbc.OdbcType.Text, 50, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "Denumirea", System.Data.DataRowVersion.Original, Nothing)) objDA2.Update(ds, "clienti") I get the error message:"Concurrency violation: the UpdateCommand affected 0 records."
  3. Thank you very much! :) I managed to read teh data from the tables, but I couldn't update the records. I have tryed like this: 'ds is the dataset with the changed values. Dim objDA2 As New OdbcDataAdapter Dim StrSQL2 As String = "SELECT * FROM Clienti" objDA2 = New Microsoft.Data.Odbc.OdbcDataAdapter(StrSQL2, objConn1) objDA2.UpdateCommand = New Microsoft.Data.Odbc.OdbcCommand objDA2.UpdateCommand.Connection = objConn1 objDA2.UpdateCommand.CommandText = "UPDATE Clienti SET ID=@ID, Denumire = @Denumire WHERE (ID = @Original_ID) AND (Denumire = @Original_Denumire OR @Original_Denumire IS NULL AND Denumire IS NULL) ; SELECT ID, Denumire FROM Clienti WHERE (ID = @ID)" objDA2.UpdateCommand.Parameters.Add(New Microsoft.Data.Odbc.OdbcParameter("@ID", Microsoft.Data.Odbc.OdbcType.BigInt, 8, "ID")) objDA2.UpdateCommand.Parameters.Add(New Microsoft.Data.Odbc.OdbcParameter("@Denumire", Microsoft.Data.Odbc.OdbcType.Text, 50, "Denumire")) objDA2.UpdateCommand.Parameters.Add(New Microsoft.Data.Odbc.OdbcParameter("@Original_ID", Microsoft.Data.Odbc.OdbcType.BigInt, 8, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "ID", System.Data.DataRowVersion.Original, Nothing)) objDA2.UpdateCommand.Parameters.Add(New Microsoft.Data.Odbc.OdbcParameter("@Original_Denumire", Microsoft.Data.Odbc.OdbcType.Text, 50, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "Denumirea", System.Data.DataRowVersion.Original, Nothing)) objDA2.Update(ds, "clienti") The table doesn't change at all. What did I do rong?
  4. I've found the folowing example conn.ConnectionString = "DRIVER={MySQL ODBC 3.51 DRIVER};" _ & "SERVER=localhost;" _ & "UID=root;PWD=;OPTION=3" conn.Open() When I try to open the database, This error message apears: An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in Info.exe Additional information: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified I have on my computer MySql 3.23. So I tryed to replace '3.51' with '3.23' but I get the same error. What shell I do? :confused:
×
×
  • Create New...