Problem z zapytaniem UPDATE z pod bazy mdb ...

  • 0 Odpowiedzi
  • 1475 Wyświetleń

0 użytkowników i 1 Gość przegląda ten wątek.

Problem z zapytaniem UPDATE z pod bazy mdb ...
« dnia: Grudzień 01, 2006, 14:58:18 »
Witam!
Mam taki mały problem.
Posiadam sobie taki zestawik funkcji, które sobie zrobiłem na podobieństwo identycznych z czystego mySQL, abym nie musiał przerabiać sporej ilości kodu, gdybym chciał zrezygnować z .mdb i wrócić do .sql, poniżej przykładowe funkcje:

public static OleDbConnection getConnection()
{
OleDbConnection Connection = new OleDbConnection ();
return Connection;
}

public static OleDbDataReader executeQuery(string query)
{
OleDbConnection conn = new OleDbConnection();
try
{
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + mdbPatch + ";Persist Security Info=False;";
conn.Open();
}
catch(Exception ex)
{
MessageBox.Show(ex.Message,"ExecuteQuery: Wystąpił błąd podczas próby połączenia się z bazą danych. Połączenie nie może być zrealizowane. (" + ex.Message +")");
return null;
}
OleDbDataReader reader = null;
try
{
OleDbCommand cmd = new OleDbCommand(query, conn);
reader = cmd.ExecuteReader();
}
catch(Exception e) { MessageBox.Show("ExecuteQuery: Wystąpił błąd wczytania podczas wykonywania zapytania do bazy danych. Zapytanie nie może być zrealizowane. (" + e.Message + ")"); return null; }
// conn.Close();
return reader;
}

public static int executeInsert(string query)
{
int res = 0;
OleDbConnection conn = getConnection();
try
{
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + mdbPatch + ";Persist Security Info=False;";
conn.Open();
}
catch(Exception ex)
{
MessageBox.Show(ex.Message,"ExecuteInsert: Wystąpił błąd otwarcia połączenia podczas próby połączenia się z bazą danych. Połączenie nie może być zrealizowane. (" + ex.Message +")");
return -1;
}

OleDbCommand cmd = null;

try
{
cmd = new OleDbCommand(query, conn);
res = cmd.ExecuteNonQuery();
}
catch(Exception e)
{
MessageBox.Show("W ExecuteInsert: Wystąpił błąd podczas wykonywania zapytania do bazy danych. Zapytanie nie może być zrealizowane. (" + e.Message + ")");
return -1;
}
// conn.Close();
return res;
}


Te powyższe działają świetnie. Problem pojawia się w tej poniżej:

public static OleDbDataAdapter executeUpdate(string query)
{
int res = 0;

OleDbDataAdapter da = new OleDbDataAdapter();
OleDbConnection conn = getConnection();
try
{
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + mdbPatch + ";Persist Security Info=False;";
conn.Open();
}
catch(Exception ex)
{
MessageBox.Show(ex.Message,"ExecuteUpdate: Wystąpił błąd otwarcia połączenia podczas próby połączenia się z bazą danych. Połączenie nie może być zrealizowane. (" + ex.Message +")");
// return -1;
}
try
{
OleDbCommand cmd = new OleDbCommand(query, conn);

// OleDbParameter parm;
// parm = cmd.Parameters.Add(("@oldCustomerID", OleDbType.Char, 5, "CustomerID");
// parm.SourceVersion = DataRowVersion.Original;

da.UpdateCommand = cmd;

// OleDbCommand cmd = new OleDbCommand(query, conn);
// res = cmd.ExecuteNonQuery();
// OleDbDataAdapter cmd = new OleDbDataAdapter(query, conn);
// res = cmd..ExecuteNonQuery();
}
catch(Exception e)
{
MessageBox.Show("ExecuteUpdate: Wystąpił błąd podczas wykonywania zapytania do bazy danych. Zapytanie nie może być zrealizowane. (" + e.Message + ")");
// return -1;
}
// conn.Close();
return da;//res;
}

Mianowicie, rekordy w tabeli nie Update'ują się. Jak widać jest tam kilka wykomentowanych linijek, gdyż próbowałem na kilka sposobów i ciągle nic.
Dodam iż jest to kod funkcjonujący na Framework 1.1.
Ma ktoś jakąś małą sugestię? Poradę ?
Dzięki za odpowiedź,